manage.py是每一個Django項目中自動生成的一個用於管理項目的腳本文件,須要經過python命令執行。manage.py接受的是Django提供的內置命令。css
內置命令包含python
其實有三種方式,能夠在cmd窗口中執行Django提供的內置命令:shell
$ django-admin <command> [options]
$ python manage.py <command> [options]
$ python -m django <command> [options]
其中
一、django-admin是用於管理Django的命令行工具集,當咱們成功安裝Django後,在操做系統中就會有這個命令,可是根據安裝方式或者系統環境的不一樣,你可能須要配置一下調用路徑。在Linux下,該命令通常位於site-packages/django/bin,最好作一個連接到/usr/local/bin,方便調用。Windows下能夠配置系統環境變量數據庫
二、manage.py則是每一個Django項目中自動生成的一個用於管理項目的腳本文件,須要在cmd窗口中cd到Django項目的manage.py所在的目錄後經過python命令執行。django
其中的command是Django內置的或者你自定義的命令。服務器
固然你能夠在在pycharm中啓動manage.py時設置參數。session
1. checkapp
檢查整個Django項目是否存在常見問題。工具
默認狀況下,全部應用都將被選中。能夠經過提供app的名字檢查指定的應用:測試
python manage.py check app1
2. diffsettings
python manage.py diffsettings
顯示當前設置文件與Django的默認設置之間的差別。
3. flush
python manage.py flush
從數據庫中刪除全部數據。已應用的遷移不會被清除。只刪除具體數據,不刪除數據表!
若是您但願從空數據庫啓動並從新運行全部遷移,則應該刪除並從新建立數據庫,而後再運行migrate,這樣會連原來的數據表都刪了。
4. makemigrations
python manage.py makemigrations app1 app2
根據檢測到的模型建立新的遷移。遷移的做用,更多的是將數據庫的操做,以文件的形式記錄下來,方便之後檢查、調用、重作等等。尤爲是對於Git版本管理,它沒法獲知數據庫是如何變化的,只能經過遷移文件中的記錄來追溯和保存。
5. migrate
python manage.py migrate
使數據庫狀態與當前模型集和遷移集同步。說白了,就是將對數據庫的更改,主要是數據表設計的更改,在數據庫中真實執行。例如,新建、修改、刪除數據表,新增、修改、刪除某數據表內的字段等等。
6. runserver
python manage.py runserver
啓用Django爲咱們提供的輕量級的開發用的Web服務器。默認狀況下,服務器運行在IP地址127.0.0.1的8000端口上。若是要自定義服務器端口和地址,能夠顯式地傳遞一個IP地址和端口號給它。
python manage.py runserver 127.0.0.1:8080
7. shell
python manage.py shell
啓動帶有Django環境的Python交互式解釋器,也就是命令行環境。默認使用基本的python交互式解釋器。這個命令很是經常使用,是咱們測試和開發過程當中不可或缺的部分!
8. startapp
python manage.py startapp app_name
建立新的app。
默認狀況下,會在這個新的app目錄下建立一系列文件模版,好比models.py、views.py、admin.py等等。
9. startproject
python manage.py startproject project_name
新建工程。默認狀況下,新目錄包含manage.py腳本和項目包(包含settings.py和其餘文件)。
10. test
python manage.py test [test_label [test_label ...]]
運行全部已安裝的app的測試代碼。
前面是Django核心提供的命令項,下面則是一些內置app,好比auth等提供的命令項。它們只在對應的app啓用的時候纔可用。
changepassword
createsuperuser
clearsessions
collectstatic
3、 共有參數
–pythonpath PYTHONPATH –settings SETTINGS –traceback –verbosity {0,1,2,3}, -v {0,1,2,3} –no-color