首先安裝虛擬環(huán)境,命令如下
sudo pip3 install virtualenv#安裝虛擬環(huán)境
接下來還要安裝虛擬環(huán)境擴(kuò)展包(使用起來更簡單),命令如下:
sudo pip3 install virtualenvwrapper
修改家目錄下的配置文件.bashrc,添加如下內(nèi)容
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
激活配置內(nèi)容
source .bashrc
創(chuàng)建虛擬環(huán)境
mkvirtualenv+名
安裝Django
pip install django==1.11.11
相關(guān)命令
# 虛擬環(huán)境
mkvirtualenv# 創(chuàng)建虛擬環(huán)境
rmvirtualenv# 刪除虛擬環(huán)境
workon# 進(jìn)入虛擬環(huán)境躁垛、查看所有虛擬環(huán)境
deactivate# 退出虛擬環(huán)境
# pip
pip install# 安裝依賴包
pip uninstall# 卸載依賴包
pip list# 查看已安裝的依賴包 Django (1.11.11)
pip freeze# 查看已安裝的依賴包 django==1.11.11
項(xiàng)目組織結(jié)構(gòu)
一個(gè)Project包含有多個(gè)App
一個(gè)App就是一個(gè)Python包涨共,就代表一個(gè)功能模塊,比如:用戶模塊,商品模塊等
各功能模塊間可以保持相對的獨(dú)立
以包的形式組織代碼方便功能模塊的復(fù)用
通過命令創(chuàng)建
創(chuàng)建項(xiàng)目: django-admin startproject 項(xiàng)目名
創(chuàng)建應(yīng)用: pythonmanage.pystartapp 應(yīng)用名
創(chuàng)建項(xiàng)目
要?jiǎng)?chuàng)建Django項(xiàng)目, 先進(jìn)入虛擬環(huán)境:
workon 虛擬環(huán)境名
使用如下命令創(chuàng)建Django項(xiàng)目:
django-admin startproject 項(xiàng)目名
#例:要?jiǎng)?chuàng)建的項(xiàng)目名為 mypro2
django-admin startproject mypro2
創(chuàng)建應(yīng)用
先進(jìn)入項(xiàng)目根目錄下:
cd 項(xiàng)目根目錄
執(zhí)行以下命令創(chuàng)建應(yīng)用
#manage.py 為上述創(chuàng)建項(xiàng)目時(shí)自動(dòng)生成的管理文件
python manage.py startapp 應(yīng)用名
#例:
python manage.py startapp users
運(yùn)行web服務(wù)器
jango自帶了一個(gè)純python編寫的開發(fā)階段使用的web服務(wù)器,用來預(yù)覽網(wǎng)站效果和進(jìn)行開發(fā)調(diào)試
有兩種方式運(yùn)行Django自帶的Web服務(wù)器
通過Pycharm運(yùn)行
通過命令運(yùn)行
1优质、通過Pycharm運(yùn)行
點(diǎn)擊運(yùn)行按鈕run
2運(yùn)行起來后,在 run 窗口军洼,可以看到服務(wù)器打印出來的日志信息
3可以手動(dòng)指定服務(wù)器運(yùn)行的ip和端口巩螃,不指定默認(rèn)值為: 127.0.0.1:8000
通過命令運(yùn)行
運(yùn)行Web服務(wù)器的命令
python manage.py runserver ip:端口
或:
python manage.py runserver
注意: 需要在終端中,先進(jìn)入到項(xiàng)目的根目錄下匕争,然后才可以通過上述命令啟動(dòng)服務(wù)器
可以不寫IP和端口避乏,默認(rèn)IP是127.0.0.1,默認(rèn)端口為8000甘桑。
按 ctrl+c 可以停止服務(wù)器
視圖初步使用
Django中的視圖
同F(xiàn)lask框架一樣淑际,Django也使用視圖來編寫Web應(yīng)用的業(yè)務(wù)邏輯。
Django的視圖也就是一個(gè)函數(shù)扇住,可稱為視圖函數(shù)
視圖 定義在應(yīng)用的views.py文件中的
視圖 需要綁定一個(gè)URL地址(路由)春缕,才能被django框架找到并調(diào)用執(zhí)行
關(guān)于視圖的說明:
關(guān)于視圖【理解】
視圖不是由開發(fā)者主動(dòng)調(diào)用的,而是由 Django 框架調(diào)用
當(dāng)Django接收到請求時(shí)艘蹋,會(huì)進(jìn)行URL正則匹配锄贼,調(diào)用對應(yīng)的視圖
調(diào)用視圖時(shí),Django會(huì)把請求信息封裝為一個(gè) HttpRequest 對象女阀,并作為視圖的第一個(gè)參數(shù)傳入
關(guān)于視圖的參數(shù)
視圖的第一個(gè)參數(shù)必須定義宅荤,名字可自定義,但習(xí)慣命名為 request浸策,類型為HttpRequest
缺少了該參數(shù)冯键,Django在調(diào)用視圖時(shí),將無法傳入HttpRequest對象
關(guān)于視圖的返回值
視圖必須返回一個(gè) HttpResponse 對象(或其子類對象)庸汗,不能像Flask一樣直接返回字符串
HttpRequest請求對象由Django創(chuàng)建惫确,HttpResponse響應(yīng)對象由開發(fā)人員創(chuàng)建
配置URL(路由)
在項(xiàng)目下的urls.py文件中進(jìn)行url路由配置如下:
# 注意:urlpatterns是一個(gè)列表
urlpatterns = [
...
# 配置路由和視圖: http://127.0.0.1:8000/users/index
# 參數(shù)1: 匹配url的正則表達(dá)式
# 參數(shù)2: 匹配成功后由Django框架調(diào)用的視圖函數(shù)
url(r'^users/index$', views.index),
]
模板初步使用
在項(xiàng)目的 templates 目錄下創(chuàng)建一個(gè)模板文件
在視圖函數(shù)中,使用render()方法渲染模板,得到HttpResponse對象并返回
defindex(request):
# render返回的是HttpResponse對象
returnrender(request,'index.html')