📜  管理命令 django - Python (1)

📅  最后修改于: 2023-12-03 15:27:26.643000             🧑  作者: Mango

管理命令 Django - Python

Django 是一个基于 Python 的开放源代码 Web 框架,它遵循了 MVC(模型-视图-控制器)的设计模式,提供了很多方便的工具和功能,使得 Web 开发过程更加简便。

Django 中最核心的部分就是管理命令,它们可以帮助程序员快速地创建模型、视图和控制器,以及运行服务器、迁移数据库和执行测试等任务。下面将逐一介绍 Django 中常用的管理命令:

创建项目

django-admin startproject 命令用于创建 Django 项目,它会生成一个包含所有必要文件和目录的基本项目结构。使用如下命令创建一个新的 Django 项目:

django-admin startproject myproject

其中,myproject 是项目的名称,执行该命令后会生成一个包含如下文件和目录的项目结构:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

这些文件和目录的作用如下:

  • manage.py: 与项目交互的命令行工具,所有后续的管理命令都需要通过该工具使用;
  • myproject/: 项目的 Python 包,包含了所有的应用程序和其他组件;
  • __init__.py: 表示 myproject 是一个 Python 包;
  • settings.py: 项目的配置文件,包含了数据库、静态文件、模版和访问控制等信息;
  • urls.py: URL 路由映射,将 URL 映射到相应的视图函数或者其他处理器;
  • asgi.pywsgi.py: ASGI 和 WSGI 服务器入口,用于请求分发和多进程模型支持。
创建应用

python manage.py startapp 命令用于创建一个新的应用,一个 Django 项目可以包含多个应用程序。使用如下命令创建一个新的应用:

python manage.py startapp myapp

其中,myapp 是应用程序的名称,执行该命令后会生成一个包含如下文件和目录的应用程序结构:

myapp/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py

这些文件和目录的作用如下:

  • __init__.py: 表示 myapp 是一个 Python 包;
  • admin.py: 管理“后台”,允许程序员对模型进行编辑、创建、删除等操作;
  • apps.py: 应用程序配置文件,允许程序员配置应用程序级别的设置;
  • models.py: 应用程序的数据模型定义;
  • tests.py: 应用程序的测试文件;
  • views.py: 应用程序的视图函数定义。
运行服务器

python manage.py runserver 命令用于启动 Django 开发服务器,它可以自动检测代码的变化并重新加载应用程序。使用如下命令启动服务器:

python manage.py runserver

执行该命令后,服务器会监听本地的 8000 端口,可以通过 http://localhost:8000/ 访问 Django 项目的默认首页。

数据库迁移

Django 中的模型定义是基于 ORM(对象关系映射)的,它将模型对象映射到数据库中的表结构。当模型发生变化时,需要执行数据库迁移操作,将表结构更新到最新版本。用于数据迁移的管理命令有如下三个:

  • python manage.py makemigrations: 生成迁移文件;
  • python manage.py migrate: 执行迁移操作;
  • python manage.py showmigrations: 显示已有迁移文件的状态。
创建超级用户

Django 中的管理命令还包括创建超级用户的命令 python manage.py createsuperuser,这个命令可以帮助程序员创建一个拥有管理员权限的用户账号,用于管理站点和其他用户。使用如下命令创建超级用户:

python manage.py createsuperuser

执行命令后,会提示输入用户名、电子邮件和密码等信息,输入完毕后即可创建超级用户账号。

单元测试

Django 支持多种单元测试框架,包括 Django 自带的测试框架,以及第三方框架如 PyTest 和 Nose。用于执行单元测试的管理命令有如下两个:

  • python manage.py test: 执行所有应用程序的测试用例;
  • -k 选项用于指定测试用例的名称模式,python manage.py test -k mytest 将执行所有名称中包含 mytest 的测试用例。

以上就是 Django 中常用的管理命令,通过这些命令可以快速完成 Django 项目的开发和测试工作,提高开发效率,加速迭代周期。