Django常用命令介紹,新手建議閱讀
來源:https://www.django.cn/article/show-26.html
在DJango里django-admin.py和manage.py都是Django的命令工具集,用于處理系統管理相關操作,而manage.py是在創建Django工程時自動生成的,manage.py是對django-admin.py的簡單包裝,二者的作用基本一致。
區別:
1、django-admin存放在Python的site-packages\django\bin 里,manage.py存放在項目工程文件夾里。
2、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 dbshell
check:檢查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
顯示指定命令的詳細文檔
python manage.py help #commands為需要指定顯示的命令</pre>
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項目
語法:
默認是8000端口
python manage.py runserver
指定IP和端口
python manage.py runserver 127.0.0.1:8000
指定端口
python manage.py runserver 8000
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的命令同時給了應用程序的名字和migtrations名字,系統會把數據庫恢復到之前指定的一個版本。
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]的表示已經部署到數據庫里去了,沒有的則顯示 [ ]