community.general.django_manage 模块 – 管理 Django 应用程序

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.general.django_manage

概要

  • 使用 manage.py 应用程序前端来管理 Django 应用程序,以 django-admin。使用 virtualenv 参数,所有管理命令将由给定的 virtualenv 安装执行。

要求

执行此模块的主机需要满足以下要求。

  • django >= 4.1

参数

参数

注释

ack_venv_creation_deprecation

布尔值

在 community.general 5.8.0 中添加

自 community.general 9.0.0 起,此选项不再有任何效果。

它将从 community.general 11.0.0 中删除。

选择

  • false

  • true

apps

字符串

要定位的以空格分隔的应用程序列表。由 test 命令使用。

cache_table

字符串

用于数据库支持的缓存的表名称。由 createcachetable 命令使用。

clear

布尔值

在尝试复制或链接原始文件之前,清除现有文件。

仅与 collectstatic 命令一起使用。将自动添加 --noinput 参数。

选择

  • false ← (默认)

  • true

command

字符串 / 必需

要运行的 Django 管理命令的名称。下面列出的命令内置于此模块中,并具有一些基本参数验证。

collectstatic - 将静态文件收集到 STATIC_ROOT 中。

createcachetable - 创建用于数据库缓存后端的缓存表。

flush - 从数据库中删除所有数据。

loaddata - 搜索并将命名的 fixtures 的内容加载到数据库中。

migrate - 将数据库状态与模型和迁移同步。

test - 运行所有已安装应用程序的测试。

可以输入其他命令,但如果 Django 未知,则会失败。其他可能会提示用户输入的命令应使用 --noinput 标志运行。

对值 cleanupsyncdbvalidate 的支持已在 community.general 9.0.0 中删除。请参阅有关支持的 Django 版本的注释。

database

字符串

要定位的数据库。由 createcachetableflushloaddatasyncdbmigrate 命令使用。

failfast

别名:fail_fast

布尔值

如果测试失败,则立即使命令失败。由 test 命令使用。

选择

  • false ← (默认)

  • true

fixtures

字符串

要在数据库中加载的以空格分隔的 fixture 文件名列表。 loaddata 命令必需

布尔值

将创建指向文件的链接而不是复制文件,您只能将此参数与 collectstatic 命令一起使用。

选择

  • false

  • true

merge

布尔值

将按顺序运行或缺少迁移,因为它们不是回滚迁移,您只能将此参数与 migrate 命令一起使用。

选择

  • false

  • true

project_path

别名:app_path, chdir

路径 / 必需

Django 应用程序根目录的路径,其中 manage.py 位于此处。

pythonpath

别名:python_path

路径

要添加到 Python 路径的目录。通常用于包含设置模块(如果它位于应用程序目录的外部)。

这等效于将 pythonpath 的值添加到 PYTHONPATH 环境变量。

settings

路径

应用程序设置模块的 Python 路径,例如 myapp.settings

skip

布尔值

将跳过乱序的缺失迁移,此参数只能与 migrate 命令一起使用。

选择

  • false

  • true

testrunner

别名: test_runner

字符串

控制用于执行测试的测试运行器类。

此参数将按原样传递给 manage.py

virtualenv

别名: virtual_env

路径

一个可选的 virtualenv 安装路径,用于在运行管理应用程序时使用。

虚拟环境必须存在,否则模块将失败。

属性

属性

支持

描述

check_mode

支持:

可以在 check_mode 下运行,并返回已更改状态的预测,而无需修改目标。

diff_mode

支持:

当处于 diff 模式时,将返回有关已更改(或可能需要在 check_mode 中更改)的详细信息。

说明

注意

  • 注意:在 community.general 版本 9.0.0 中,已移除对早于 4.1 的 Django 版本的支持。虽然该模块允许自由形式的命令,但不验证所使用的 Django 版本,但强烈建议使用较新版本的 Django。

  • 请注意,Django 4.1 需要 Python 3.8 或更高版本。

  • 如果指定了 virtualenv 参数,并且给定位置的虚拟环境尚不存在,则此模块不会创建虚拟环境。此行为在 community.general 版本 9.0.0 中已更改。

  • 在 Ansible 中创建虚拟环境的推荐方法是使用 ansible.builtin.pip

  • 不幸的是,此模块假设 createcachetable 命令使用英语错误消息来检测表是否存在。

  • 要使用 collectstatic 命令,您必须在设置中启用 staticfiles

  • 您的 manage.py 应用程序必须是可执行的 (rwxr-xr-x),并且必须具有有效的 shebang,例如 #!/usr/bin/env python,用于调用适当的 Python 解释器。

另请参阅

另请参阅

django-admin 和 manage.py 参考

django-adminmanage.py 命令的参考。

Django 下载页面

显示如何获取 Django 和受支持版本的时间轴的页面。

我可以使用哪个 Python 版本与 Django 一起使用?

来自 Django 常见问题解答,关于该框架的 Python 要求的回复。

示例

- name: Run cleanup on the application installed in django_dir
  community.general.django_manage:
    command: clearsessions
    project_path: "{{ django_dir }}"

- name: Load the initial_data fixture into the application
  community.general.django_manage:
    command: loaddata
    project_path: "{{ django_dir }}"
    fixtures: "{{ initial_data }}"

- name: Run syncdb on the application
  community.general.django_manage:
    command: migrate
    project_path: "{{ django_dir }}"
    settings: "{{ settings_app_name }}"
    pythonpath: "{{ settings_dir }}"
    virtualenv: "{{ virtualenv_dir }}"

- name: Run the SmokeTest test case from the main app. Useful for testing deploys
  community.general.django_manage:
    command: test
    project_path: "{{ django_dir }}"
    apps: main.SmokeTest

- name: Create an initial superuser
  community.general.django_manage:
    command: "createsuperuser --noinput --username=admin [email protected]"
    project_path: "{{ django_dir }}"

作者

  • Alexei Znamensky (@russoz)

  • Scott Anderson (@tastychutney)