小编Bob*_*Bob的帖子

PyCharm的检查中错误的Python版本

PyCharm项目解释器的项目"Python 3.6 C:\ Anaconda\python.exe"的设置

但在我的代码中,我得到的检查就像"Python版本3.5不支持'F'前缀"

我的系统上没有任何Python3.5,我尝试解决此问题,执行以下操作:

  • 删除了pycharm设置中的解释器,然后将其添加回来
  • 卸载所有其他python版本,从Windows注册表等删除其条目
  • 更新了anaconda/conda等

什么都没有用.无论如何,当我选择它作为项目解释器时,为什么PyCharm显示python版本是3.6,但在检查中它是3.5?

pycharm

12
推荐指数
2
解决办法
3715
查看次数

可以在应用程序中动态设置os.environ ['PYTHONHASHSEED']吗?

只需将其设置为这样的新值,是否可以为当前流程更改?

os.environ['PYTHONHASHSEED'] = 'random'
Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
1
解决办法
2485
查看次数

如何以编程方式应用/取消应用 Django 迁移?

我需要以编程方式应用 Django 迁移,例如这个:

class Migration(migrations.Migration):

    dependencies = [
        ('some_app', '0001_initial'),
    ]

    operations = [
        migrations.AlterIndexTogether(
            name='some_model',
            index_together=set([('some_field_one', 'some_field_two')]),
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?我尝试使用 apply 方法,但无法弄清楚如何使其工作。

migration django

7
推荐指数
0
解决办法
1401
查看次数

如何为 DESC NULLS LAST 排序正确创建索引

我创建了一个索引而不指定排序或空值 first/last 例如:

CREATE INDEX index_name ON TABLE table_name (date)
Run Code Online (Sandbox Code Playgroud)

现在我的ORDER BY DESC NULLS LAST查询运行非常缓慢。

我在 PostgreSQL 文档中读到,

NULLS FIRST 指定空值排在非空值之前。这是指定 DESC 时的默认设置。

NULLS LAST 指定空值排在非空值之后。这是未指定 DESC 时的默认设置。

因此,如果我创建这样的索引(对于 col date):

CREATE INDEX index_name ON TABLE table_name (date DESC NULLS LAST)
Run Code Online (Sandbox Code Playgroud)

对于诸如此类的查询,我会获得严重的性能提升吗

SELECT * FROM table_name ORDER BY date DESC NULLS LAST LIMIT 50 OFFSET 0
Run Code Online (Sandbox Code Playgroud)

?

postgresql indexing

6
推荐指数
1
解决办法
3148
查看次数

不能用 pytest-mock 模拟“os.path.join”

当我使用模拟库时,例如with mock.patch('os.path.join'):一切正常,但是当我像这样使用 pytest-mock 时,mocker.patch('os.path.join')如果断言失败,我会收到以下错误:

pytest 似乎试图使用 'os.path' 模块,但由于它是用 mocker 修补的,它失败并引发错误,我做错了什么吗?

AssertionError: Expected 'transform_file' to be called once. Called 0 times.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 890, in _find_spec
AttributeError: 'AssertionRewritingHook' object has no attribute 'find_spec'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\anaconda\lib\site-packages\py\_path\common.py", line 29, in fspath
    return path_type.__fspath__(path)
AttributeError: type object 'MagicMock' has no …
Run Code Online (Sandbox Code Playgroud)

python unit-testing

6
推荐指数
1
解决办法
2183
查看次数

Django表单:在验证之前修改发布数据的最佳方法是什么?

form = ContactForm(request.POST)

# how to change form fields' values here?

if form.is_valid():
    message = form.cleaned_data['message']
Run Code Online (Sandbox Code Playgroud)

验证数据之前,有没有一种很好的方法来修剪空白,修改一些/所有字段等?

python django

5
推荐指数
2
解决办法
3285
查看次数

可拖动拖动事件节流

我正在尝试在 html5 canvas 上制作一个动画,该动画应该在移动时跟随可拖动的 div,如下所示:

draggable_div.draggable({
    drag: function(e, ui) {
        canvasDrawSomethingNearDraggable(ui);
    }
    stop: function(e, ui) {
        canvasDrawSomethingNearDraggable(ui);
    }
});

function canvasDrawRectangleUnderDraggable {
    for (i = 0; i < 10; i++) { // draw overlapping circles in fixed order
        context.beginPath();
        context.arc(x[i], y[i], 10, 0, 2 * Math.PI, false);
        context.fillStyle = c[i];
        context.fill();
        context.stroke();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我移动可拖动元素时,动画滞后(移动速度越快,间隙就越大,并且仅当可拖动停止事件触发时才会关闭):

在此输入图像描述

有没有办法解决或减轻这个问题?我应该计算拖动事件之间的时间并以这种方式减少对绘图函数的调用还是有更好的解决方案?

javascript jquery-ui

5
推荐指数
1
解决办法
4110
查看次数

F() 表达式和原子事务可以相互替换吗?

替换此代码是否安全:

def view(request):
    reporter.stories_filed = F('stories_filed') + 1
Run Code Online (Sandbox Code Playgroud)

有了这个:

@transaction.atomic
def view(request):
    reporter.stories_filed += 1       
Run Code Online (Sandbox Code Playgroud)

这是错误的:

@transaction.atomic
def view(request):
    reporter.stories_filed = F('stories_filed') + 1
Run Code Online (Sandbox Code Playgroud)

?

django transactions

5
推荐指数
1
解决办法
143
查看次数

存储行数和行数以加快分页是不是一个坏主意?

我的网站有超过20.000.000个条目,条目有类别(FK)和标签(M2M).至于查询,即使像SELECT id FROM table ORDER BY id LIMIT 1000000, 10MySQL需要扫描1000010行,但这实在是慢得令人无法接受(而pks,索引,连接等等在这里帮助不大,仍然是1000010行).所以我试图通过使用这样的触发器存储行计数和行号来加速分页:

DELIMITER //
CREATE TRIGGER @trigger_name
AFTER INSERT
ON entry_table FOR EACH ROW
BEGIN
    UPDATE category_table SET row_count = (@rc := row_count + 1)
    WHERE id = NEW.category_id;
    NEW.row_number_in_category = @rc;
END //
Run Code Online (Sandbox Code Playgroud)

然后我可以简单地说:

SELECT * 
FROM entry_table 
WHERE row_number_in_category > 10 
ORDER BY row_number_in_category 
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

(现在只扫描了10行,因此选择速度非常快,虽然插入速度较慢,但​​与选择相比它们很少见,所以没关系)

这是一个糟糕的方法,还有什么好的选择吗?

mysql pagination

5
推荐指数
1
解决办法
200
查看次数

使用装饰器更改 django 模型的“.objects”管理器

我正在尝试编写一个装饰器来更改 django 模型的管理器,如下所示:

def custom_manager(*args):
    class CustomManager(models.Manager):
        pass
    def wrapper(cls):
        cls.add_to_class('objects', CustomManager())
        return cls
    return wrapper

@custom_manager()
class SomeModel(models.Model):
    pass
Run Code Online (Sandbox Code Playgroud)

问题似乎是objects默认管理器已采用属性,并且必须首先从模型中将其删除。简单地在装饰器内设置 cls.objects = CustomManager() 也不起作用。

如果我使用一些未使用的属性名称(即不是objects),一切都会正常工作,但我想完全替换该objects属性以使所有应用程序(例如 DjangoAdmin 等)使用此自定义管理器。

那么有没有办法从模型中正确删除默认管理器或以其他方式修复它?

django

5
推荐指数
1
解决办法
295
查看次数