Django django-admin 和 manage.py 命令的使用

date
Feb 22, 2020
slug
5589755464280064
status
Published
tags
summary
type
Post
django-admin是Django的用于管理任务的命令行实用程序,manage.py和他功能相同,但它是django-admin创建项目时为每一个项目创建的管理程序
注意: django-admin 和 manage.py 虽然共有绝大部分命令,但是建议对项目操作时使用 manage.py ,django-admin 在未设置环境变量 DJANGO_SETTINGS_MODULE 或未在之前调用 settings.configure() 的情况下会报错

django-admin 和 manage.py 共有命令

命令
功能
version
查看当前Django版本
check
检查整个Django项目是否存在常见问题
compilemessages
makemessages创建的.po文件编译为.mo文件,支持与内置的文字一起使用
createcachetable
使用设置文件中的信息创建与数据库缓存后端一起使用的缓存表
dbshell
使用在USERPASSWORD等设置中指定的连接参数,为ENGINE设置中指定的数据库引擎运行命令行客户端
diffsettings
显示当前设置文件和Django默认设置(或--default指定的另一个设置文件)之间的差异
dumpdata
将与应用程序名称关联的数据库中的所有数据输出到标准输出
flush
从数据库中删除所有数据,然后重新执行所有同步后处理程序。已应用的迁移不会被清除
inspectdb
将Django模型模块(models.py文件)输出到标准输出。
loaddata
搜索指定的fixture(数据库的序列化内容的文件的集合)并将其内容加载到数据库中
makemessages
在当前目录的整个源代码树上运行,并拉取所有标记为要翻译的字符串。
makemigrations
根据检测到的模型更改或创建新迁移
migrate
将数据库状态与当前模型和迁移集同步
runserver
在本地计算机上启动轻量级开发Web服务器
sendtestemail
向指定的收件人发送测试电子邮件(以确认通过Django发送的电子邮件是否有效)
shell
启动Python交互式解释器
showmigrations
显示项目中的所有迁移
sqlflush
打印将为flush命令执行的SQL语句
sqlmigrate
打印迁移名称的SQL
sqlsequencereset
打印用于重设给定应用程序名称的序列的SQL语句
squashmigrations
如果可能的话,将app_label的迁移(包括migration_name在内)压缩为更小的迁移。
startapp
在当前目录或给定目录中为给定应用程序名称创建Django应用程序目录结构
startproject
在当前目录或给定目录中为给定项目名称创建Django项目目录结构
test
对所有已安装的应用程序运行测试
testserver
使用来自给定fixture的数据运行Django开发服务器(与runserver一样)

提供给应用程序的命令

命令
功能
changepassword
更改用户密码
createsuperuser
创建一个超级用户帐户(具有所有权限的用户)
remove_stale_contenttypes
从数据库中删除过时的内容类型(从已删除的模型中)
clearsessions
可以作为计划任务作业运行,也可以直接清除过期的会话。
collectstatic
将静态文件收集到中STATIC_ROOT
findstatic
使用已启用的查找器搜索一个或多个相对路径

常用命令

  • version
查看当前Django版本
django-admin version
  • check
使用系统检查框架来检查整个Django项目中的常见问题。
默认情况下,将检查所有应用程序。
  1. 通过提供应用标签列表作为参数来检查部分应用
py manage.py check auth admin myapp
  1. 限制检查为仅属于特定类别的检查
py manage.py check --tag models --tag compatibility
  1. 显示用于限制检测的标签
py manage.py check --list-tags
admin caches database models staticfiles templates translation urls
  • createcachetable
指定将在其中创建缓存表的数据库
py manage.py createcachetable --database DATABASE
  • diffsettings
  1. 显示当前设置文件和Django默认设置之间的差异
py manage.py diffsettings
  1. 显示所有设置
py manage.py diffsettings --all
  • dumpdata
将与应用程序名称关联的数据库中的所有数据输出到标准输出
如果未提供应用程序名称,则所有安装的应用程序将被输出
  1. 输出所有应用程序关联的数据库中的所有数据
py manage.py dumpdata
  1. 输出所有指定应用程序关联的数据库中的所有数据
py manage.py dumpdata myapp
  1. 指定格式输出
py manage.py dumpdata --format xml
支持的序列选项有 json(默认), xml, yaml
  1. 排除指定应用程序
py manage.py dumpdata --exclude=myapp1
  1. 将所有数据保存
py manage.py dumpdata myapp > myapp_dump.json
  1. 其他选项
      • -indent 输出中使用的缩进空间的数量
      • -database 指定转储数据的数据库
      • -natural-primary 省略此对象的序列化数据中的主键
      • -pks PRIMARY_KEYS 仅输出由逗号分隔的主键列表指定的对象
      • -output, -o 指定要写入序列化数据的文件
  • flush
从数据库中删除所有数据。已应用的迁移不会被删除。只删除具体数据,不删除数据表!
py manage.py flush
  • inspectdb
根据数据库中的表生成models文件
py manage.py inspectdb
  • loaddata
加载数据到数据库
py manage.py loaddata myapp_dump.json
  • makemigrations
  1. 对当前模型进行创建或更改迁移
py manage.py makemigrations
  1. 解决迁移冲突
py manage.py makemigrations --merge
  1. 对指定应用程序创建或更改迁移
py manage.py makemigrations myapp
  • migrate
  1. 将数据库状态与当前的模型和迁移集同步
py manage.py migrate
  1. 指定应用程序进行迁移同步
py manage.py migrate myapp
  1. 指定迁移文件进行同步
py manage.py migrate 0001
  • runserver
  1. 运行服务器
py manage.py runserver
默认 127.0.0.1:8000
  1. 使用IPv6开发服务器
py manage.py runserver -ipv6 或 django-admin runserver -6
默认 ::1:8000
  1. 使用指定指定端口
py manage.py runserver 7000
  1. 使用localhost
py manage.py runserver localhost:8000
  • shell
  1. 启动Python交互解释器
py manage.py shell
  1. 指定shell启动交互解释器
py manage.py shell -i ipython 或 py manage.py shell -i bpython 或 py manage.py shell -i python
  • showmigrations
  1. 显示项目中的所有迁移
py manage.py showmigrations
  1. 显示指定应用程序的所有迁移
py manage.py showmigrations myapp
  • sqlflush
打印将对该flush 命令执行的SQL语句
py manage.py sqlflush
  • sqlmigrate
输出指定应用程式迁移的SQL语句
py manage.py sqlmigrate myapp 0001
  • startapp
创建应用程序
py manage.py startapp myapp
  • startproject
  1. 在当前目录创建项目
django-admin startproject dome
  1. 在指定目录创建项目
django-admin startproject dome /Users/jairo/project/myproject
  • createsuperuser
创建超级管理员账户
py manage.py createsuperuser
  • changepassword
为超级管理员账户修改密码
py manage.py changepassword admin
 
对于本文内容有任何疑问, 可与我联系.