跳转到主要内容

开发 Django 项目的辅助工具。

项目描述

manage_django_project

tests codecov manage_django_project @ PyPi Python Versions License GPL-3.0-or-later

开发 Django 项目的辅助工具

  • 轻松启动虚拟环境
    • 只需获取源代码并调用 ./manage.py
    • 只需要 python3-pippython3-venv 软件包即可启动
  • 所有 Django manage 命令都可作为常规 CLI 和通过 cmd2 shell 使用
  • cmd2 shell 可自动完成所有现有的 manage 命令和所有选项
  • 自动在 localtests 设置之间切换 Django 设置。
  • 开发时有用的 manage 命令

包含的 Django manage 命令

  • code_style - 检查/修复项目代码风格
  • coverage - 使用覆盖率运行测试并报告
  • install - 仅通过 pip 将项目安装为可编辑的(如果版本已更改,则很有用)
  • pip_audit - 使用 pyproject.toml 中的配置运行 pip-audit
  • playwright - 调用 playwright CLI
  • project_info - 当前 Django 项目的信息
  • publish - 构建新版本并将其发布到 PyPi
  • run_dev_server - 设置测试项目并运行 django 开发者服务器
  • shell - 进入带有所有已注册 Django manage 命令的 cmd2 shell
  • tox - 通过 tox 运行测试
  • update_req - 通过 pip-tools 更新项目需求
  • update_test_snapshot_files - 更新所有快照文件(通过删除并重新创建所有快照文件)

如何使用

使用 manage_django_project 在您的项目中需要一些步骤。

以下是一个概述和详细信息

  • manage_django_project 添加到您的开发依赖中
  • 您的 Django 项目应该有针对 prodlocaltests 的单独设置(后两个由 manage_django_project 使用)
  • 添加 bootstrap manage.py
  • 添加一个包含 execute_django_from_command_line() 调用的 __main__.py
  • 在您的 pyproject.toml
    • 添加 [manage_django_project] 部分
    • __main__文件添加到[project.scripts]
  • 将你的[project.scripts]名称添加到bootstrap manage.py

以下所有示例都使用了manage_django_project_example。你必须将此字符串/路径重命名为你的Django包名。

完整示例在此:https://github.com/jedie/manage_django_project/tree/main/manage_django_project_example

如果一切按预期工作,你只需调用./manage.py文件,魔法就会发生 ;)

main.py

添加一个.../manage_django_project_example/__main__.py文件,看起来像

from manage_django_project.manage import execute_django_from_command_line


def main():
    """
    entrypoint installed via pyproject.toml and [project.scripts] section.
    Must be set in ./manage.py and PROJECT_SHELL_SCRIPT
    """
    execute_django_from_command_line()


if __name__ == '__main__':
    main()

pyproject.toml

[project.scripts]
manage_django_project_example = "manage_django_project_example.__main__:main"

[manage_django_project]
module_name="your_project_example"

# Django settings used for all commands except test/coverage/tox:
local_settings='your_project.settings.local'

# Django settings used for test/coverage/tox commands:
test_settings='your_project.settings.tests'

./manage.py

manage.py文件的副本添加到你的项目源根目录。

只更改此行中的manage_django_project_example

PROJECT_SHELL_SCRIPT = BIN_PATH / 'manage_django_project_example'

开始编写代码

只需克隆项目并开始./manage.py以引导虚拟环境

# Install base requirements:
~$ sudo apt install python3-pip python3-venv

# Get the sources:
~$ git clone https://github.com/jedie/manage_django_project.git
~$ cd manage_django_project/

# Just call manage.py and the magic happen:
~/manage_django_project$ ./manage.py

# start local dev. web server:
~/django-for-runners$ ./manage.py run_dev_server

# run tests:
~/django-for-runners$ ./manage.py test
# or with coverage
~/django-for-runners$ ./manage.py coverage
# or via tox:
~/django-for-runners$ ./manage.py tox

不兼容的更改

v0.2.x -> v0.3.x

配置已从__main__.py移动到pyproject.toml

你必须在pyproject.toml中添加以下内容

[manage_django_project]
module_name="your_project_example"

# Django settings used for all commands except test/coverage/tox:
local_settings='your_project.settings.local'

# Django settings used for test/coverage/tox commands:
test_settings='your_project.settings.tests'

execute_django_from_command_line()中删除了config参数,因此你的__main__.py必须看起来像

from manage_django_project.manage import execute_django_from_command_line


def main():
    execute_django_from_command_line()


if __name__ == '__main__':
    main()

发布新版本

我们使用cli-base-utilities在README中生成历史记录。

要发布新版本,请执行以下操作

  • 增加你的项目版本号
  • 运行测试以更新README
  • 提交更改
  • 创建发布

历史记录

  • v0.8.0
    • 2024-08-02 - 将“safety”替换为“pip-audit”并添加相关工具。
    • 2024-08-02 - 更新项目设置
    • 2024-08-02 - 更新要求和添加git预提交钩子
    • 2024-05-21 - 更新要求
    • 2024-05-21 - 安全性:忽略CVE-2018-20225
    • 2024-05-21 - 从manageprojects模板更新
  • v0.7.2
    • 2024-02-20 - 将“--strip-extras”添加到pip-compile并更新要求
  • v0.7.1
    • 2024-01-18 - 在测试中使用typeguard
    • 2024-01-18 - 更新要求
    • 2024-01-18 - manageprojects更新 + 设置最小Python为3.9
  • v0.7.0
    • 2023-12-19 - 应用manageprojects:扩展测试矩阵 + 更新要求 + 跳过Python 3.9
    • 2023-12-19 - 为unittests设置django
    • 2023-12-16 - 修复代码风格错误
    • 2023-12-16 - 使用update_readme_history &作为git钩子
    • 2023-11-07 - 更新要求
扩展更早的历史记录...
  • v0.6.4
    • 2023-11-01 - 更新要求
  • v0.6.3
    • 2023-11-01 - 更新要求
    • 2023-11-01 - 在README中自动生成历史记录
    • 2023-11-01 - 修复运行manage命令时子进程超时的问题
  • v0.6.2
  • v0.6.1
    • 2023-09-24 - 在测试运行后始终清除覆盖率数据
    • 2023-09-24 - 添加与Playwright CLI交互的管理命令
  • v0.6.0
    • 2023-09-24 - 从README中删除过时的历史记录
    • 2023-09-24 - 更好的命令调用信息
    • 2023-09-24 - 新命令:update_test_snapshot_files
    • 2023-09-24 - 自动清除覆盖率数据
    • 2023-09-24 - 更新要求
  • v0.5.2
    • 2023-08-17 - 修复:manageprojects必须是正常依赖项
  • v0.5.1
    • 2023-08-17 - 使用cli_base中的print_version
    • 2023-08-17 - 更新要求
    • 2023-08-17 - cookiecutter_directory = "managed-django-project"
    • 2023-08-17 - 应用模板更新
  • v0.5.0
  • v0.4.1
    • 2023-04-08 - 使用manageprojects中的get_pyproject_toml并添加到update_req的总结输出
  • v0.4.0
    • 2023-04-07 - 针对不同Django版本的测试
    • 2023-04-07 - 增强 "update_req" 命令
  • v0.3.0
    • 2023-04-05 - 从 __main__.py 移至 pyproject.toml
    • 2023-04-05 - 修复 tox 运行错误
    • 2023-04-05 - 更新 manage.py
    • 2023-04-05 - 删除 README.md
    • 2023-04-05 - 小型项目更新
  • v0.2.2
    • 2023-04-02 - 修复代码风格
    • 2023-04-02 - 应用管理项目更新
    • 2023-04-02 - 忽略非 django.core.management.base.BaseCommand 基于的命令
    • 2023-04-02 - 更新需求
  • v0.2.1
    • 2023-03-16 - 修复测试
    • 2023-03-16 - 在 README 中添加 "包含的 Django 管理命令"
    • 2023-03-16 - 错别字
    • 2023-03-16 - 设置 v0.2.1
    • 2023-03-16 - 增强文档
    • 2023-03-16 - 从 ManageConfig 中移除 prod_settings 并添加 local_settings_commands
    • 2023-03-16 - 添加对 bootstrap manage.py 调用的测试
    • 2023-03-16 - 通过激活 --concurrency=multiprocessing 修复覆盖率
    • 2023-03-15 - 修复 CI
    • 2023-03-15 - "tox" 命令:在失败运行时退出 "normal"
    • 2023-03-15 - 为 "safety" 命令添加测试
    • 2023-03-15 - 测试 "tox" 命令
    • 2023-03-15 - 为 "run_dev_server" 命令添加测试
    • 2023-03-15 - 测试 "project_info" 命令
    • 2023-03-15 - 测试 "install" 命令
    • 2023-03-15 - 测试 "code_sytle" 命令
    • 2023-03-15 - 代码清理:删除未使用的文件
    • 2023-03-14 - +测试覆盖率
    • 2023-03-14 - 测试 "update_req"
    • 2023-03-14 - 为 "update_req" 添加基本测试
    • 2023-03-14 - 为 unittests 添加 DocTest
    • 2023-03-14 - 测试 shell
    • 2023-03-14 - 跳过损坏的命令
    • 2023-03-14 - 删除调试打印
  • v0.2.0
    • 2023-03-13 - 新增:使用所有注册的 Django 管理命令的 "./manage.py shell" 命令
  • v0.1.1
    • 2023-03-13 - 在发布调用中使用 distribution_name
  • v0.1.0
    • 2023-03-12 - 在创建新 '.coverage' 之前删除现有的 '.coverage'
    • 2023-03-12 - 检查设置
    • 2023-03-12 - 重命名测试设置并检查测试中使用的设置
    • 2023-03-12 - 在发布之前使用测试设置运行测试
    • 2023-03-12 - 更新 README.md
  • v0.0.1
    • 2023-03-11 - 初始化
    • 2023-03-11 - 初始提交

项目详情


下载文件

下载适合您平台的项目文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

manage_django_project-0.8.0.tar.gz (189.6 kB 查看哈希值)

构建分发

manage_django_project-0.8.0-py3-none-any.whl (57.5 kB 查看哈希值)

上传于 Python 3

由以下支持