问题标签 [django-commands]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1140 浏览

python - Django:在生产中禁用初始系统检查?

我已经搜索了文档并正在寻找一个 Django 设置,该设置在生产中禁用系统检查(不仅仅是使它们静音)。我有一个包含 20,000 多个模型的项目,这些模型会自动生成以创建 RESTful 端点。这些系统检查需要相当长的时间:

https://docs.djangoproject.com/en/1.11/ref/checks/#models

让系统检查开发是必要的,即使它会导致manage.py20-30 分钟的启动。但是,每当我将新版本发布到生产环境时,对生产节点的第一个 HTTP 请求也需要 20-30 分钟才能响应!我显然想避免这种情况,因为在最初的请求之后,网站速度很快。

虽然下面评论中的答案引用了一个runserver更快提出的解决方案,但我正在寻找生产解决方案,而不是我们的开发环境。

我环顾四周寻找类似DISABLED_SYSTEM_CHECKS但只遇到过的设置SILENCED_SYSTEM_CHECKS请参见此处),但这似乎只是使输出静音,而不是不运行需要时间的检查。这样的动物存在吗?我在跑mod_wsgi生产中运行。我见过requires_system_checks个别命令,但正在寻找一个项目范围的解决方案。非常感谢。

0 投票
2 回答
371 浏览

python - 我的自定义 django-admin 命令不会调用 celery 任务

我正在尝试编写一个执行 celery 任务的自定义 django-admin 命令,但是该任务没有执行,并且当我尝试时 django 只是挂起。

调用命令时我收到的输出是:

我从来没有到达“任务已发送”这一行。它只是挂起。我不确定为什么任务没有运行。当被视图调用时,芹菜任务被完美地调用。

0 投票
1 回答
330 浏览

python - 将自定义 Django 命令的输出重定向到浏览器

我创建了一个自定义命令,它接受一个位置参数和一个命名的可选参数。它会进行许多检查、下载文件、解压缩并使用解压缩的数据填充数据库。

为了让用户更方便,我创建了一个简单的表单并创建了一个视图:

效果很好,现在我想向用户提供反馈,因为该命令可能会运行一段时间。

是否有可能将命令输出(或使其可用)重定向到模板并在浏览器中显示?

在我的命令中,我使用:

输出消息并且不直接使用该print方法打印。

0 投票
0 回答
146 浏览

python - 在执行自定义 django 命令时排除 Django 已安装的应用程序

我在已安装的应用程序(settings.INSTALLED_APPS)中有“xxx”在
这个应用程序中,我检查 Postgresql 中的现有模式
如果模式不存在,我会抛出异常
我请求用户执行 Django 自定义命令(用于创建模式)

但是这个命令无法执行,因为django.setup()Django 运行 xxx 应用程序,它运行关于缺失模式的异常

我想在执行我的自定义命令时暂时从 Django 中排除 xxx 应用程序,或者你有什么建议

0 投票
2 回答
224 浏览

python - Django:从命令行生成 python 代码

这里有一种编写 Django 命令来自动生成代码的方法吗?

就我而言:每次创建新模型时,我也必须创建以下内容:

  • 在中创建管理类admin.py
  • 创建与此模型相关的服务功能。
  • 使用 FactoryBoy 创建工厂。
  • 创建测试类。

如果有一个自动生成这些东西的命令会很好。当然,不是所有的东西,而只是基本的定义。

今天在 Django 中有这样的事情吗?或者有没有办法可以编写 Django 命令来生成代码?

0 投票
1 回答
722 浏览

django - django shell_plus timeit call_command?

我写了一个 django 命令,想看看它的时间,所以在里面django shell_plus我这样做:

该命令应运行 3 次并输出其运行时间。

如果直接运行'call_command'它可以工作,如果在timeit内调用它会抛出这个错误:

0 投票
1 回答
52 浏览

python - 无法理解 Django save() 如何处理 *args

昨天正在解决将图片从 URL 导入到 Django 模型的问题。能够提出一个可行的解决方案,但仍然不知道这是如何工作的。func如何save知道它可以处理什么样的 *args 以及以什么顺序?因为当我更改图片对象和文件名的位置时,它不起作用TypeError: join() argument must be str or bytes, not 'File'。阅读文档无法理解它 - https://docs.djangoproject.com/en/2.1/_modules/django/db/models/base/#Model.save。下面的脚本将 NHL 球员的姓名、ID 和个人资料照片放到我的 Player 模型中。有什么帮助吗?

命令文件:

模型文件:

0 投票
0 回答
407 浏览

python - 使用短语作为参数调用 Django 命令

我正在尝试运行命令

zappa manage staging 'run_sql --sql \"show databases\"'

但我收到以下错误:

我尝试了各种各样的事情,比如

但都因同样的原因而失败:

django.core.management.base.CommandError:错误:无法识别的参数:数据库\\”</p>

看起来 Django 命令解析器认为该短语是几个选项或其他东西,但我无法弄清楚将其视为单个参数的方法。

基于以下 Django 命令:

0 投票
0 回答
167 浏览

python - 如何防止 django 运行一个命令的多个实例?

我们在 django 应用程序中有一个自定义命令,用于执行与外部服务的数据同步。

该命令每小时启动一次。

通常,命令在半小时或更短的时间内完成,但最近,我们遇到了该过程需要几个小时的情况。同时,该命令在后台再次启动了几次,导致对模型的访问不一致(因为我们的代码不是针对这种情况设计的)。

如果它已经在运行,是否可以阻止 django 运行该命令?

我认为解决此问题的一种方法是将文件用作命令的互斥锁。

但这对我来说似乎不是很优雅,因为如果命令被中断并且文件可能无法正确清理,它可能会导致任何额外的麻烦。

解决这个问题的最佳方法是什么?有没有 pythonic / django-ish 的方式来做到这一点?

0 投票
1 回答
320 浏览

nginx - Python Django call_command 权限 gunicorn+nginx

问题

当我尝试通过 gunicorn 执行 django 管理命令时收到 502 bad gateway

逻辑线

我认为问题出在权限上,像gunicorn这样的东西不能调用命令。我这么说是因为我可以在不使用 gunicorn 的本地运行它。

我可以用这两种方法运行它:

  • python manage.py runserver之后,使用 Postman 启动它就可以了。

  • 第二个是通过终端呼叫python manage.py command_name,这也可以。

  • 在生产中,我也可以使用python manage.py command_name. 但不是邮递员,因为它返回 502(主要问题)

PS。如果我删除call_command它返回 200 ok,那么,核心问题似乎是这个命令的执行。

编码

返回样品

独角兽会议

Nginx 日志错误

我试过的

  • sudo chown -R www-data:www-data /var/www/project
  • sudo chown -R ubuntu:ubuntu /var/www/project
  • 根据这个问题解决方案更改我在 gunicorn 配置上的 Environment 值Django call_command permissions nginx+gunicorn+supervisord。添加PYTHONPATH,但是这个人在主管配置上使用它,这个项目不使用主管,所以我试图把它放在gunicorn文件中,这只是一个尝试。