安裝 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