Django 基本命令
Django基本命令
本節主要是為了讓您瞭解一些django最基本的命令,請嘗試著記住它們,並且多多練習下,特別是標記為紅色的那些
開啟 Linux 或 MacOS 的 Terminal (終端)直接在 終端中輸入這些命令(不是 python 的 shell中)
如果是 windows 用 cmd(開始 搜尋 cmd 或者 快捷鍵win + R,輸入 cmd) 直接在 cmd 上操作。
1. 新建一個 django project
1 2 |
django-admin.pystartprojectproject_name
特別是在windows上,如果報錯,嘗試用django-admin代替django-admin.py試試 |
注意 project_name 是自己的專案名稱,需要為合法的 Python 包名,如不能為 1a 或 a-b。
2. 新建 app
要先進入專案目錄下,cd project_name 然後執行下面的命令(下同,已經在專案目錄下則不需要 cd project_name)
1 2 |
pythonmanage.pystartappapp_name
或django-admin.pystartappapp_name
|
一般一個專案有多個app, 當然通用的app也可以在多個專案中使用。
與專案名類似 app name 也需要為合法的 Python 包名,如 blog,news, aboutus 等都是合法的 app 名稱。
3. 建立資料庫表 或 更改資料庫表或欄位
1 2 3 4 5 |
#1.建立更改的檔案
pythonmanage.pymakemigrations
#2.將生成的py檔案應用到資料庫
pythonmanage.pymigrate
|
這種方法可以在SQL等資料庫中建立與models.py程式碼對應的表,不需要自己手動執行SQL。
備註:對已有的 models 進行修改,Django 1.7之前的版本的Django都是無法自動更改表結構的,不過有第三方工具 south,詳見Django 資料庫遷移一節。
4. 使用開發伺服器
開發伺服器,即開發時使用,一般修改程式碼後會自動重啟,方便除錯和開發,但是由於效能問題,建議只用來測試,不要用在生產環境。
1 2 3 4 5 6 7 8 9 10 11 12 |
pythonmanage.pyrunserver
#當提示埠被佔用的時候,可以用其它埠:
pythonmanage.pyrunserver8001
pythonmanage.pyrunserver9999
(當然也可以 kill 掉佔用埠的程序,具體後面有講,此處想知道的同學可查下 lsof 命令用法)
#監聽機器所有可用ip(電腦可能有多個內網ip或多個外網ip)
pythonmanage.pyrunserver0.0.0.0:8000
#如果是外網或者區域網電腦上可以用其它電腦檢視開發伺服器
#訪問對應的ip加埠,比如http://172.16.20.2:8000
|
5. 清空資料庫
1 |
pythonmanage.pyflush
|
此命令會詢問是 yes 還是 no, 選擇 yes 會把資料全部清空掉,只留下空表。
6. 建立超級管理員
1 2 3 4 5 6 |
pythonmanage.pycreatesuperuser
#按照提示輸入使用者名稱和對應的密碼就好了郵箱可以留空,使用者名稱和密碼必填
#修改使用者密碼可以用:
pythonmanage.pychangepasswordusername
|
7. 匯出資料 匯入資料
1 2 |
pythonmanage.pydumpdataappname>appname.json
pythonmanage.pyloaddataappname.json
|
關於資料操作 詳見:資料匯入資料遷移,現在瞭解有這個用法就可以了。
8. Django 專案環境終端
1 |
pythonmanage.pyshell
|
如果你安裝了 bpython 或 ipython 會自動用它們的介面,推薦安裝 bpython。
這個命令和 直接執行 python 或 bpython 進入 shell 的區別是:你可以在這個 shell 裡面呼叫當前專案的 models.py 中的 API,對於操作資料,還有一些小測試非常方便。
9. 資料庫命令列
1 |
pythonmanage.pydbshell
|
Django 會自動進入在settings.py中設定的資料庫,如果是 MySQL 或 postgreSQL,會要求輸入資料庫使用者密碼。
在這個終端可以執行資料庫的SQL語句。如果您對SQL比較熟悉,可能喜歡這種方式。
10. 更多命令
1 |
終端上輸入pythonmanage.py可以看到詳細的列表,在忘記子名稱的時候特別有用。
|