本篇主要介紹我們在使用django架構開發的時候使用的常用語句,為了增加開發效率,建議将這些語句記住并多多練習,
開始
建立工程
django-admin startproject project-name
複制
這是一個django開發的開始,當然也可以用pycharm這個ide建立工程,這個東西還是看個人習慣了。但最好還是記住,
- project-name —— 項目名稱(需要符合Python 的變量命名規則(以下劃線或字母開頭))
- 有些版本的django可能是django-admin.py(根據個人需求選擇)
建立app
python manage.py startapp app-name
#或者還可以這樣
django-admin.py startapp app-name
複制
這是建立一個app,利用pycharm這個ide暫時我不知道怎麼建立app,如果有讀者知道的話,請在評論區告知我。
- app-name —— 應用名稱
- 根據項目的需求選擇建立app的數量,每次都是執行同樣的語句。
- 我們需要在項目的settings中的INSTALLED_APPS中添加我們所建立的app
同步資料庫
python manage.py makemigrations
python manage.py migrate
複制
這兩句代碼的功能是同步資料庫,我們在項目的settings中的DATABASES中設定好資料庫各種參數,在app的models.py中建立我們所需要的字段,輸入以上兩條語句,django就自動幫我們自動生成了相應的資料表
- 以上代碼是在django1.7以上用的
- 如果是django1.7以下版本請使用python manage.py syncdb
- 對已有的 models 進行修改,Django 1.7之前的版本的Django都是無法自動更改表結構的,不過有第三方工具 south
- django1.7以上的版本已經內建south
使用測試伺服器
python manage.py runserver
# 當提示端口被占用的時候,可以用其它端口:
python manage.py runserver 8001
python manage.py runserver 9999
(當然也可以kill掉占用端口的程序)
# 監聽所有可用 ip (電腦可能有一個或多個内網ip,一個或多個外網ip,即有多個ip位址)
python manage.py runserver 0.0.0.0:8000
# 如果是外網或者區域網路電腦上可以用其它電腦檢視開發伺服器
# 通路對應的 ip加端口,比如 http://172.16.20.2:8000
複制
以上代碼可以開始調式,打開浏覽器顯示我們所在代碼中修改的效果
- 在cmd中輸入python manage.py runserver 會打開預設打開127.0.0.1:8000, 預設隻監聽本地ip
- 也可以用pycharm中的運作django,(這裡會監聽所有ip)
- 開發伺服器,即開發時使用,一般修改代碼後會自動重新開機,友善調試和開發,但是由于性能問題,建議隻用來測試,不要用在生産環境
清空資料庫
python manage.py flush
複制
當你發現自己的資料庫中的資料有問題時,就需要執行以上語句,可以清空資料庫,但是保留資料庫的結構
- 此指令會詢問是 yes 還是 no, 選擇 yes 會把資料全部清空掉,隻留下空表
建立超級管理者
python manage.py createsuperuser
複制
django很好的一點就是自帶了背景管理功能,但是我們去使用的時候還是需要建立超級管理者,去管理背景
- 按照提示輸入使用者名和對應的密碼就好了郵箱可以留白,使用者名和密碼必填
修改 使用者密碼可以用:
python manage.py changepassword username
複制
導出資料 導入資料
python manage.py dumpdata appname > appname.json
python manage.py loaddata appname.json
複制
這兩條資料我們不是很常用 ,知道即可
Django 項目環境終端
python manage.py shell
複制
你可以在這個 shell 裡面調用目前項目的 models.py 中的 API,對于操作資料,還有一些小測試非常友善
- 這裡推薦安裝 bpython 或 ipython通過pip安裝即可 pip install ipython
- bpython 或 ipython有一些代碼提示和文法高亮的功能,比較好用,這是ipython的效果
注:
- 上述代碼在django1.7和Python2.7中編譯成功運作,其他環境請自行測試
- 上述文字皆為個人看法,如有錯誤或建議請及時聯系我