1. 程式人生 > >django的基本命令

django的基本命令

1. 新建一個 django project

1

2

django-admin.py startproject project_name

特別是在 windows 上,如果報錯,嘗試用 django-admin 代替 django-admin.py 試試

注意 project_name 是自己的專案名稱,需要為合法的 Python 包名,如不能為 1a 或 a-b。

2. 新建 app

要先進入專案目錄下,cd project_name 然後執行下面的命令(下同,已經在專案目錄下則不需要 cd project_name)

1

2

python manage.py startapp app_name

或 django-admin.py startapp app_name

一般一個專案有多個app, 當然通用的app也可以在多個專案中使用。

與專案名類似 app name 也需要為合法的 Python 包名,如 blog,news, aboutus 等都是合法的 app 名稱。

3. 建立資料庫表 或 更改資料庫表或欄位

1

2

3

4

5

6

7

8

9

Django 1.7.1及以上 用以下命令

# 1. 建立更改的檔案

python manage.py makemigrations

# 2. 將生成的py檔案應用到資料庫

python manage.py migrate

 

 

舊版本的Django 1.6及以下用

python manage.py syncdb

這種方法可以在SQL等資料庫中建立與models.py程式碼對應的表,不需要自己手動執行SQL。

備註:對已有的 models 進行修改,Django 1.7之前的版本的Django都是無法自動更改表結構的,不過有第三方工具 south,詳見 Django 資料庫遷移 一節。

4. 使用開發伺服器

開發伺服器,即開發時使用,一般修改程式碼後會自動重啟,方便除錯和開發,但是由於效能問題,建議只用來測試,不要用在生產環境。

1

2

3

4

5

6

7

8

9

10

11

python manage.py runserver

 

# 當提示埠被佔用的時候,可以用其它埠:

python manage.py runserver 8001

python manage.py runserver 9999

(當然也可以kill掉佔用埠的程序,具體後面有講,此處想知道的同學可查下 lsof 命令用法)

 

# 監聽機器所有可用 ip (電腦可能有多個內網ip或多個外網ip)

python manage.py runserver 0.0.0.0:8000

# 如果是外網或者區域網電腦上可以用其它電腦檢視開發伺服器

# 訪問對應的 ip加埠,比如 http://172.16.20.2:8000

5. 清空資料庫

1

python manage.py flush

此命令會詢問是 yes 還是 no, 選擇 yes 會把資料全部清空掉,只留下空表。

6. 建立超級管理員

1

2

3

4

5

6

python manage.py createsuperuser

 

# 按照提示輸入使用者名稱和對應的密碼就好了郵箱可以留空,使用者名稱和密碼必填

 

# 修改 使用者密碼可以用:

python manage.py changepassword username

7. 匯出資料 匯入資料

1

2

python manage.py dumpdata appname > appname.json

python manage.py loaddata appname.json

關於資料操作 詳見:資料匯入資料遷移,現在瞭解有這個用法就可以了。

8. Django 專案環境終端

1

python manage.py shell

如果你安裝了 bpython 或 ipython 會自動用它們的介面,推薦安裝 bpython。

這個命令和 直接執行 python 或 bpython 進入 shell 的區別是:你可以在這個 shell 裡面呼叫當前專案的 models.py 中的 API,對於操作資料,還有一些小測試非常方便。

9. 資料庫命令列

1

python manage.py dbshell

Django 會自動進入在settings.py中設定的資料庫,如果是 MySQL 或 postgreSQL,會要求輸入資料庫使用者密碼。

在這個終端可以執行資料庫的SQL語句。如果您對SQL比較熟悉,可能喜歡這種方式。

10. 更多命令

1

終端上輸入 python manage.py 可以看到詳細的列表,在忘記子名稱的時候特別有用。