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