安装 Django 之后,默认即安装了django-admin。在命令提示符中输入下面的命令,就会列出django-admin 的常用命令:
django-admin
在Django里django-admin.py和manage.py都是Django的命令工具集,用于处理系统管理相关操作,而manage.py是在创建Django工程时自动生成的,manage.py是对django-admin.py的简单包装,二者的作用基本一致。
django-admin存放在Python/ target=_blank class=infotextkey>Python的site-packagesdjangobin 里,manage.py存放在项目工程文件夹里。 django-admin可以对不同的项目进行设置,而manege.py只能对当前的工程有效。
执行命令的三种方式:
$ django-admin <command> [options]
$ python manage.py <command> [options]
$ python -m django <command> [options]
获得运行时帮助:
- 运行 django-admin help 来显示使用信息和每个应用程序提供的命令列表。
- 运行 django-admin help --commands 来显示所有可用命令的列表。
- 运行 django-admin help <command> 来显示命令的描述和可用选项的列表。
django-admin 的常用命令介绍:
- check - 检查整个Django项目是否存在常见问题。
默认情况下,所有应用都将被选中。可以通过提供App的名字检查指定的应用:
django-admin check auth admin myapp
如果你没有指定任何一个应用,那么将对全部的应用进行检查。
- compilemessages - 编译语言文件
- createcachetable - 创建语言文件
- dbshell - 运行ENGINE设置中指定的数据库引擎的命令行客户端,其中USER,PASSword等指定连接参数。
- diffsettings - 显示当前设置文件与Django的默认设置之间的差异。可以帮助发现你都做了哪些改变。
- dumpdata - 输出指定应用中的指定模型的数据。如果模型名没指定,则应用中的所有模型被输出。如果没有指定应用名,则所有的应用被输出。
- flush - 从数据库中删除所有数据。已应用的迁移不会被清除。只删除具体数据,不删除数据表!如果希望从空数据库启动并重新运行所有迁移,则应该删除并重新创建数据库,然后再运行migrate,这样会连原来的数据表都删了。
- inspectdb - 从已有的数据表,推导出Django的模型。
- loaddata - 将fixture中的数据加载到数据库中。
- makemessages - 查找整个源代码路径以找出全部翻译字符串并生成一个新的消息文件或者更新已有的消息文件。
- makemigrations - 根据检测到的模型创建新的迁移。迁移的作用,更多的是将数据库的操作,以文件的形式记录下来,方便以后检查、调用、重做等等。尤其是对于Git版本管理,它无法获知数据库是如何变化的,只能通过迁移文件中的记录来追溯和保存。
- migrate - 使数据库状态与当前模型集和迁移集同步。说白了,就是将对数据库的更改,主要是数据表设计的更改,在数据库中真实执行。例如,新建、修改、删除数据表,新增、修改、删除某数据表内的字段等等。
- optimizemigration - 优化命名的 migration 操作。
- runserver - 启用Django为我们提供的轻量级的开发用的Web服务器。默认情况下,服务器运行在IP地址127.0.0.1的8000端口上。如果要自定义服务器端口和地址,可以显式地传递一个IP地址和端口号给它。
- sendtestemail - 发送测试邮件以检测邮箱设置是否正确。
- shell - 启动带有Django环境的Python交互式解释器,也就是命令行环境。默认使用基本的python交互式解释器。这个命令非常常用,是我们测试和开发过程中不可或缺的部分!
- showmigrations - 显示项目中所有的迁移文件。
有两种格式:
--list:列表格式。默认格式。
--plan, -p:无脑直出格式
--database:指定数据库
- sqlflush - 打印出python manage.py flush命令实际执行的SQL语句。
- sqlmigrate - 打印出某个应用下的某个迁移文件实际对应的SQL语句。
- sqlsequencereset - 打印用于为给定应用程序名称重置序列的 SQL 语句。
- squashmigrations - 将现有的一组迁移(从第一个到指定)压缩为一个新的迁移。
- startapp - 创建新的app。默认情况下,会在这个新的app目录下创建一系列文件模版,比如models.py、views.py、admin.py等等。
- startproject - 新建工程。默认情况下,新目录包含manage.py脚本和项目包(包含settings.py和其他文件)。
- test - 运行所有已安装的app的测试代码。
- testserver - 使用来自给定的 fixture 数据运行开发服务器。
manage.py命令
manage.py是每个Django项目中自动生成的一个用于管理项目的脚本文件。manage.py接受的是Django提供的内置命令。manage.py 内置命令包含:
- check - 检查整个Django项目是否存在常见问题。默认情况下,所有应用都将被选中。可以通过提供app的名字检查指定的应用:
- dbshell - 进入数据库的命令行。
- diffsettings - 显示当前设置文件与Django的默认设置之间的差异。
- flush - 从数据库中删除所有数据。已应用的迁移不会被清除。只删除具体数据,不删除数据表!如果您希望从空数据库启动并重新运行所有迁移,则应该删除并重新创建数据库,然后再运行migrate,这样会连原来的数据表都删了。
- makemigrations - 根据检测到的模型创建新的迁移。迁移的作用,更多的是将数据库的操作,以文件的形式记录下来,方便以后检查、调用、重做等等。尤其是对于Git版本管理,它无法获知数据库是如何变化的,只能通过迁移文件中的记录来追溯和保存。
- migrate - 使数据库状态与当前模型集和迁移集同步。说白了,就是将对数据库的更改,主要是数据表设计的更改,在数据库中真实执行。例如,新建、修改、删除数据表,新增、修改、删除某数据表内的字段等等。
- runserver - 启用Django为我们提供的轻量级的开发用的Web服务器。默认情况下,服务器运行在IP地址127.0.0.1的8000端口上。如果要自定义服务器端口和地址,可以显式地传递一个IP地址和端口号给它。
- shell - 启动带有Django环境的Python交互式解释器,也就是命令行环境。默认使用基本的python交互式解释器。这个命令非常常用,是我们测试和开发过程中不可或缺的部分!
- startapp - 创建新的app。默认情况下,会在这个新的app目录下创建一系列文件模版,比如models.py、views.py、admin.py等等。
- startproject - 新建工程。默认情况下,新目录包含manage.py脚本和项目包(包含settings.py和其他文件)。
- test - 运行所有已安装的app的测试代码。
app提供的命令
前面是Django核心提供的命令项,下面则是一些内置app,比如auth等提供的命令项。它们只在对应的app启用的时候才可用。
changepassword
createsuperuser
clearsessions
collectstatic