django有什么樣的開發(fā)優(yōu)勢(shì)
Django是使用python進(jìn)行web開發(fā)的一個(gè)高效開發(fā)框架,具有以下優(yōu)勢(shì):
非常高效的web應(yīng)用搭建
非常高效的web功能處理
完善的ORM操作[程序中的數(shù)據(jù)和數(shù)據(jù)庫中的數(shù)據(jù)的對(duì)應(yīng)(增刪改查)關(guān)系]
非常強(qiáng)大的表單處理
非常強(qiáng)大的網(wǎng)頁模板視圖[網(wǎng)頁、模板語法(視圖)]
非常強(qiáng)大的路由功能[url地址和處理函數(shù)之間的映射(對(duì)應(yīng))關(guān)系]
硬件性能突破緩存處理
django的安裝
django的安裝與python中其他模塊的安裝類似
即pip install django
若python2與python3共存,嘗試:
pip3 install django
若不行 ,嘗試
python(x) -m pip install django
使用django創(chuàng)建web項(xiàng)目
django-admin startproject xxx
創(chuàng)建好的項(xiàng)目文件結(jié)構(gòu):
例:
django -admin startproject mysite
|-- mysite/ # 項(xiàng)目文件夾[根目錄]
|-- mysite/ # 根項(xiàng)目(主項(xiàng)目)
|-- __init__.py # 模塊文件
|-- urls.py # 路由文件[url地址和處理函數(shù)進(jìn)行對(duì)應(yīng)]
|-- settings.py # 項(xiàng)目的設(shè)置配置文件
|-- wsgi.py # 實(shí)現(xiàn)了wsgi網(wǎng)關(guān)協(xié)議的模塊
|-- manage.py # 項(xiàng)目的命令管理模塊[不需要修改,直接使用]
項(xiàng)目的啟動(dòng)及訪問
啟動(dòng):python manage.py runserver
這里默認(rèn)使用8000端口
項(xiàng)目啟動(dòng) python manage.py runserver +<自定義端口號(hào)>
web項(xiàng)目發(fā)布之后目標(biāo):數(shù)據(jù)共享——允許其他人訪問我們的網(wǎng)站
指定ip地址和端口,允許通過網(wǎng)絡(luò)地址訪問
python manage.py runserver <ip>:<port>
注意:首先在mysite/mysite/settgins.py配置文件中,修改如下配置
ALLOWSED_HOST=[“*”,]
其次在啟動(dòng)項(xiàng)目時(shí),通過如下命令啟動(dòng)
PS3:web項(xiàng)目發(fā)布之后目標(biāo):數(shù)據(jù)共享——允許其他人訪問我們的網(wǎng)站
指定ip地址和端口,允許通過網(wǎng)絡(luò)地址訪問
python manage.py runserver <ip>:<port>
注意:首先在mysite/mysite/settgins.py配置文件中,修改如下配置
ALLOWSED_HOST=[“*”,]
其次在啟動(dòng)項(xiàng)目時(shí),通過如下命令啟動(dòng)
python manage.py runserver 0.0.0.0:8000
文本顯示:
將settings.py中LANGUAGE_CODE=’en_us’改為‘zh_Hans’
創(chuàng)建視圖界面
在mysite/mysite/目錄下,創(chuàng)建一個(gè)views.py模塊
from django.http import HttpResponse
def index(request):
return HttpResponse("hello world!")
其次在mysite/mysite/urls.py路由文件中,添加url地址和處理函數(shù)之間的對(duì)應(yīng)關(guān)系
from django.conf.urls import url
from django.contrib import admin
from . import views
urlpatterns=[
url(r'^admin/',admin.urls),
url(r'^index/$',views.index,name='index')
]
詳細(xì)分析:
django是模塊管理文件的,所以不同功能的代碼存放在不同的py文件中
路由相關(guān):urls.py
設(shè)置相關(guān):settins.py
頁面視圖:views.py
網(wǎng)頁視圖開發(fā):
導(dǎo)入一個(gè)響應(yīng)對(duì)象模塊:django.http.HttpResoponse
可以通過響應(yīng)模塊,給瀏覽器返回?cái)?shù)據(jù)
def index(request):
return HttpResponse("hello world!")
路由模塊:urls.py
什么是路由?路由就是從現(xiàn)實(shí)生活中的路由器抽象出來的一個(gè)概念,表示url地址和對(duì)應(yīng)的處理函數(shù)之間 的對(duì)應(yīng)【映射】關(guān)系
路由器:ip地址【請(qǐng)求路徑】--路由器---個(gè)人PC【資源】
路由:url請(qǐng)求路徑--路由--處理函數(shù)
路由:一種映射,一種對(duì)應(yīng),表示的是一種綁定關(guān)系
from django.conf.urls import url[路由對(duì)象:可以綁定一組對(duì)應(yīng)關(guān)系]
urlpatterns=[
#將第一個(gè)參數(shù)路徑和第二個(gè)參數(shù)處理函數(shù)綁定在一起
#請(qǐng)求第一個(gè)路徑的時(shí)候,調(diào)用第二個(gè)參數(shù)[處理函數(shù)]
#第三個(gè)參數(shù)《就是給這個(gè)路由對(duì)象命名》
url(r'^test/$',views.test,name='test'),
]
創(chuàng)建Django項(xiàng)目【伴隨著創(chuàng)建Django項(xiàng)目,會(huì)自動(dòng)查創(chuàng)建根項(xiàng)目】
django-admin startproject myweb
myweb/項(xiàng)目根目錄
myweb/根項(xiàng)目
manager.py 命令模塊
進(jìn)入項(xiàng)目根目錄執(zhí)行命令創(chuàng)建子模塊應(yīng)用
django-admin startapp myblog
myweb/項(xiàng)目根目錄
myblog/子模塊應(yīng)用[子項(xiàng)目]
myweb/根項(xiàng)目
manager.py 命令模塊
Django項(xiàng)目文件結(jié)構(gòu)
|-- myweb/ 項(xiàng)目根目錄
|-- myweb/ 項(xiàng)目根項(xiàng)目
|-- __init__.py
|-- settings.py 配置文件
|-- urls.py 主路由文件
|-- views.py 根項(xiàng)目視圖模塊
|-- wsgi.py
|-- myblog/ 項(xiàng)目子模塊應(yīng)用[子項(xiàng)目]
|-- admin.py 后臺(tái)數(shù)據(jù)注冊(cè)模塊
|-- app.py 子項(xiàng)目描述模塊
|-- urls.py 子路由文件,需要包含到主路由中使用
|-- views.py 子項(xiàng)目視圖模塊
|-- models.py 子項(xiàng)目中的類型定義模塊
|-- manage.py 命令模塊
項(xiàng)目結(jié)構(gòu):
通過根項(xiàng)目來管理各個(gè)子項(xiàng)目模塊,實(shí)現(xiàn)項(xiàng)目功能的可伸縮性操作
項(xiàng)目開發(fā)原則:
MVC:是一種傳統(tǒng)的流程處理模式,是一種編程思想,主要由數(shù)據(jù)模型model、控制器Controller以及view組成的一個(gè)完成流程處理模式,首先由和用戶直接交互展示的視圖view可以發(fā)起請(qǐng)求,由控制器Controller進(jìn)行請(qǐng)求分發(fā),調(diào)用指定的數(shù)據(jù)處理函數(shù)對(duì)model進(jìn)行增刪改查操作,完成一個(gè)功能的完整處理過程
MVT:mvt處理模式,是在mvc處理模式上,升級(jí)得到一種更加赴俄實(shí)際項(xiàng)目開發(fā)流程的處理思路;在這種處理模式中,將功能比較單一的控制器Controller部分,封裝成了路由,由路由來完成請(qǐng)求的分發(fā)操作【路由是通過配置實(shí)現(xiàn)的】