Django丨Django常用命令介绍
Django丨Django常用命令介绍
在DJango
里django-admin.py
和manage.py
都是Django
的命令工具集,用于处理系统管理相关操作,而manage.py
是在创建Django
工程时自动生成的,manage.py
是对django-admin.py
的简单包装,二者的作用基本一致。
- 区别:
django-admin
存放在Python的site-packages\django\bin
里,manage.py
存放在项目工程文件夹里。django-admin
可以对不同的项目进行设置,而manege.py
只能当前的工程有效。
下面我们以manage.py
为例,列出一些常用的命令:
语法:
django-admin <subcommand> [options]
manage.py <subcommand> [options]
subcommand
是子命令;options
是可选的
常用子命令:
startproject
:创建一个项目(*)startapp
:创建一个app(*)runserver
:运行开发服务器(*)shell
:进入django shell(*)dbshell
:进入django dbshellcheck
:检查django项目完整性flush
:清空数据库compilemessages
:编译语言文件makemessages
:创建语言文件makemigrations
:生成数据库同步脚本(*)migrate
:同步数据库(*)showmigrations
:查看生成的数据库同步脚本(*)sqlflush
:查看生成清空数据库的脚本(*)sqlmigrate
:查看数据库同步的sql语句(*)dumpdata
:导出数据loaddata
:导入数据diffsettings
:查看你的配置和django默认配置的不同之处
manage.py
特有的一些子命令:createsuperuser
:创建超级管理员(*)changepassword
:修改密码(*)clearsessions
:清除session
1. help
作用:获得帮助信息
语法:
- 显示帮助信息和可用命令
python manege.py help
- 显示指定命令的详细文档
python manege.py help --commands
#commands
为需要指定显示的命令
2. version
作用:获取到当前DJango的版本
语法:
python manage.py version
3、check
作用:检查工程中是否存在错误(检查完整性)
语法:
python manage.py check [appname]
# 命令后面跟APP名称
4. startproject
作用:创建Django工程
语法:
django-admin startproject name [项目想要存放的路径]
5. startapp
作用:创建Django应用程序
语法:
django-admin startapp name [应用想要存放的路径]
python manage.py startapp name
6. runserver
作用:在当前机器启动一个Web服务器,运行Django项目
语法:
python manage.py runserver
# 默认是8000端口python manage.py runserver 8000
# 指定端口python manage.py runserver 127.0.0.1:8000
# 指定IP和端口
7. shell
作用:启动一个交互窗口
语法:
python manage.py shell
- 如果想使用
ipython
、bpython
交互模式的话需要先安装以上交互工具,安装命令:pip install ipython
- 启用命令
python manage.py shell --i [ipyhton]
8. migrations
Django通过
migrations
命令将Models中的任何修改写入到数库中,比如:新增加的模型或修改已有的字段等。
makemigrations
- 作用:根据models的变化生成对应的Python代码,该代码用于更新数据库
- 语法:
python manage.py makemigrations
python manage.py makemigrations [appname]
migrate
- 作用:将model里的修改应用到数据库
- 语法:
python manage.py migrate
# 默认是所有的APP的修改应用到数据库python manage.py migrate [appname]
# 指定APP的修改应用到数据库python manage.py migrate [appname] [migrations_name]
# 将操作恢复到指定版本
注意:
如果执行migrate
的命令同时给了应用程序的名字和migrations_name
,系统会把数据库恢复到之前指定的一个版本。
例如:python manage.py migrate myblog 0001_initial
# 指定blog应用恢复到0001_initial
这个版本
Django所有的migration
信息都保存在django_migrations
这个数据库表中,如下图所示:
如果想撤销所有的数据库更改,我们可以使用 zero代替 上面的命令:python manage.py migrate blog zero
- 高级用法
如果数据库里,已经手动更新了数据库,我们只是想设置当前的
migration
状态,就使用下面的命令去实现,这个命令并不会真正的去更新数据库。
语法:
python manage.py migrate blog zero
sqlmigrate
- 作用:输出某一个
migrate
对应的SQL语句 - 语法:
python manage.py sqlmigrate blog 0001_initial
- 作用:输出某一个
showmigrations
- 作用:显示
migrations
记录 - 语法:
python manage.py showmigrations
- 作用:显示
留意:记录前有[X]的表示已经部署到数据库里去了,没有的则显示 [ ]