当前位置: 首页 > 工具软件 > django-admin2 > 使用案例 >

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

陆海阳
2023-12-01

django-admin是Django的用于管理任务的命令行实用程序,manage.py和他功能相同,但它是django-admin创建项目时为每一个项目创建的管理程序

注意: django-adminmanage.py 虽然共有绝大部分命令,但是建议对项目操作时使用 manage.pydjango-admin 在未设置环境变量 DJANGO_SETTINGS_MODULE 或未在之前调用 settings.configure() 的情况下会报错

django-admin 和 manage.py 共有命令

命令功能
version查看当前Django版本
check检查整个Django项目是否存在常见问题
compilemessagesmakemessages创建的.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
 类似资料: