Django 筆記之一 創(chuàng)建網(wǎng)站項目

本節(jié)主要是為了讓您了解一些django最基本的命令,請嘗試著記住它們,并且多多練習(xí)下,特別是標(biāo)記為紅色的那些打開 Linux 或 MacOS 的 Terminal (終端)直接在 終端中輸入這些命令(不是 python 的 shell中) 更多見:iii.run

如果是 windows 用 cmd(開始 搜索 cmd 或者 快捷鍵 win + R,輸入 cmd) 直接在 cmd 上操作。

新建一個 django project

django-admin startproject blog

特別是在 windows 上,如果報錯,嘗試用 django-admin 代替 django-admin.py 試試
注意 project_name 是自己的項目名稱,需要為合法的 Python 包名,如不能為 1a 或 a-b。

新建 app

要先進入項目目錄下,cd project_name 然后執(zhí)行下面的命令(下同,已經(jīng)在項目目錄下則不需要 cd project_name)

python manage.py startapp my_blog

django-admin  startapp my_blog

效果太概是這個樣子的

.
├── my_blog
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── blog
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-34.pyc
│   │   └── settings.cpython-34.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

一般一個項目有多個app, 當(dāng)然通用的app也可以在多個項目中使用。

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

同步更改數(shù)據(jù)庫表或字段

Django 1.7.1及以上 用以下命令
# 1. 創(chuàng)建更改的文件
python manage.py makemigrations
# 2. 將生成的py文件應(yīng)用到數(shù)據(jù)庫
python manage.py migrate
 

這種方法可以在SQL等數(shù)據(jù)庫中創(chuàng)建與models.py代碼對應(yīng)的表,不需要自己手動執(zhí)行SQL。

備注:對已有的 models 進行修改,Django 1.7之前的版本的Django都是無法自動更改表結(jié)構(gòu)的,不過有第三方工具 south,詳見 Django 數(shù)據(jù)庫遷移 一節(jié)。

使用開發(fā)服務(wù)器

開發(fā)服務(wù)器,即開發(fā)時使用,一般修改代碼后會自動重啟,方便調(diào)試和開發(fā),但是由于性能問題,建議只用來測試,不要用在生產(chǎn)環(huán)境。

python manage.py runserver
 
# 當(dāng)提示端口被占用的時候,可以用其它端口:
python manage.py runserver 8001
python manage.py runserver 9999
(當(dāng)然也可以kill掉占用端口的進程,具體后面有講,此處想知道的同學(xué)可查下 lsof 命令用法)
 
# 監(jiān)聽機器所有可用 ip (電腦可能有多個內(nèi)網(wǎng)ip或多個外網(wǎng)ip)
python manage.py runserver 0.0.0.0:8000
# 如果是外網(wǎng)或者局域網(wǎng)電腦上可以用其它電腦查看開發(fā)服務(wù)器
# 訪問對應(yīng)的 ip加端口,比如 http://172.16.20.2:8000

清空數(shù)據(jù)庫

python manage.py flush

此命令會詢問是 yes 還是 no, 選擇 yes 會把數(shù)據(jù)全部清空掉,只留下空表。

創(chuàng)建超級管理員

python manage.py createsuperuser
# 按照提示輸入用戶名和對應(yīng)的密碼就好了郵箱可以留空,用戶名和密碼必填
 
# 修改 用戶密碼可以用:
python manage.py changepassword username

導(dǎo)出數(shù)據(jù) 導(dǎo)入數(shù)據(jù)

python manage.py dumpdata appname > appname.json
python manage.py loaddata appname.json

關(guān)于數(shù)據(jù)操作 詳見:數(shù)據(jù)導(dǎo)入數(shù)據(jù)遷移,現(xiàn)在了解有這個用法就可以了。

Django 項目環(huán)境終端

python manage.py shell
如果你安裝了 bpython 或 ipython 會自動用它們的界面,推薦安裝 bpython。

這個命令和 直接運行 python 或 bpython 進入 shell 的區(qū)別是:你可以在這個 shell 里面調(diào)用當(dāng)前項目的 models.py 中的 API,對于操作數(shù)據(jù),還有一些小測試非常方便。

數(shù)據(jù)庫命令行

python manage.py dbshell

Django 會自動進入在settings.py中設(shè)置的數(shù)據(jù)庫,如果是 MySQL 或 postgreSQL,會要求輸入數(shù)據(jù)庫用戶密碼。

在這個終端可以執(zhí)行數(shù)據(jù)庫的SQL語句。如果您對SQL比較熟悉,可能喜歡這種方式。

更多命令

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容