11.28學(xué)習(xí) python web開發(fā)初級(2) Django入門

MVC處理模式

MVC是一種傳統(tǒng)的流程處理模式,是一種編程思想稻薇,主要由數(shù)據(jù)模型(Model)沟涨、控制器(Controller)以及視圖(View)組成的一個(gè)完成流程處理模式,首先由和用戶直接交互展示的視圖View可以發(fā)起請求晚伙,由控制器Controller進(jìn)行請求的分發(fā)吮龄,調(diào)用制定的數(shù)據(jù)處理函數(shù)對數(shù)據(jù)Model進(jìn)行增刪改查操作,完成一個(gè)功能的完整處理過程咆疗!

核心部分是控制器漓帚,主要實(shí)現(xiàn)視圖和數(shù)據(jù)模型之間的數(shù)據(jù)交互的!


MVC處理模式

Django在發(fā)展的過程中午磁,為了達(dá)到非常高效率的網(wǎng)站結(jié)構(gòu)搭建尝抖,提供給開發(fā)人員一個(gè)干凈整潔的項(xiàng)目結(jié)構(gòu),讓開發(fā)人員更多的精力集中在功能開發(fā)上迅皇、而不是技術(shù)實(shí)現(xiàn)上昧辽,所以Django對于常規(guī)的MVC處理模式進(jìn)行了升級——

MVT處理模式


Django是實(shí)現(xiàn)了MVT處理模式的高效率開發(fā)的web框架


MVT處理模式

MVT處理模式是在MVC處理模式上,升級得到的一種更加符合實(shí)際項(xiàng)目開發(fā)流程的處理思路登颓;在這種處理模式中搅荞,將功能比較單一的控制器Controller部分,封裝成了路由框咙!
由路由來完成請求的分發(fā)操作[路由是通過配置實(shí)現(xiàn)的]


python中模塊和框架有什么區(qū)別咕痛?

模塊:pygame\hashlib..:模塊指代的是大量函數(shù)的一個(gè)集合
框架:Django\Torando\Flask..:框架指代的各種模塊的集合以及封裝了大量的流程處理

python使用的web框架有很多,比較流行的有:
Django
Flask
Tornado


Django框架的優(yōu)勢

Django是一個(gè)python web框架喇嘱,主要用于進(jìn)行高效率的web軟件開發(fā)而衍生出來一個(gè)python組件

  • 非常高效的web應(yīng)用搭建
  • 非常高效的web功能處理
  • 完善的ORM操作【程序中的數(shù)據(jù)和數(shù)據(jù)庫中的數(shù)據(jù)的對應(yīng)(增刪改查)關(guān)系】
  • 非常強(qiáng)大的表單處理
  • 非常強(qiáng)大的網(wǎng)頁模版視圖
  • 非常強(qiáng)大的路由功能【url地址和處理函數(shù)之間的映射關(guān)系】
  • 硬件性能突破緩存處理
    ...

使用Django

安裝:命令行輸入pip install django

使用django創(chuàng)建web項(xiàng)目
在目錄下輸入django-admin startproject <name>
django-admin startproject mysite

創(chuàng)建好的項(xiàng)目文件結(jié)構(gòu)


啟動并訪問項(xiàng)目
根目錄下執(zhí)行:
python manage.py runserver

啟動成功

打開瀏覽器茉贡,訪問http://localhost:8000
即可看到頁面

默認(rèn)為英文,可以轉(zhuǎn)換成中文顯示
在mysite/mysite/setting.py中
LANGUAGE_CODE ='en_us' -> 'zh_Hans'

默認(rèn)端口為8000者铜,可以調(diào)整
自定義啟動端口 啟動時(shí)輸入:
python manage.py runserver <port>

允許其他人訪問我們的網(wǎng)站
指定ip地址和端口腔丧,允許通過網(wǎng)絡(luò)地址訪問
python manage.py runserver <ip>:<port>

注意:在mysite/mysite/settings.py中配置文件放椰,修改如下配置
ALLOWSED_HOST=["*",]
在啟動項(xiàng)目時(shí),通過如下命令啟動:
python manage.py runserver 0.0.0.0:8000

這樣的布置服務(wù)器愉粤,可以用于web項(xiàng)目的開發(fā)砾医,實(shí)際部署要部署到相應(yīng)的服務(wù)器上


創(chuàng)建第一個(gè)視圖頁面

首先在mysite/mysite/目錄下,創(chuàng)建一個(gè)views.py視圖模塊

from django.http import HttpResponse

def index(request):
    return HttpResponse("...")

其次在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’)
]

詳細(xì)分析

Django是模塊化管理文件的藻烤,所以不同功能的代碼存放在不同的py文件中
路由相關(guān):urls.py
設(shè)置相關(guān):settings.py
頁面視圖:views.py

網(wǎng)頁視圖開發(fā):
導(dǎo)入一個(gè)響應(yīng)對象模塊:django.http.HttpResponse
可以通過響應(yīng)對象模塊,給瀏覽器返回?cái)?shù)據(jù)
def index(request):
return HttpResponse("...")

路由模塊:urls.py
什么是路由头滔?路由就是從現(xiàn)實(shí)生活中的路由器抽象出來的一個(gè)概念怖亭,表示的url地址和對應(yīng)的處理函數(shù)之間的對應(yīng)[映射]關(guān)系
可參考:https://www.zhihu.com/question/46767015?sort=created

路由器:ip地址[請求路徑]-->路由器-->個(gè)人PC[資源]
路由:url請求路徑-->路由-->處理函數(shù)

路由:一種映射,一種對應(yīng)坤检,表示的是一種綁定關(guān)系

from django.conf.urls import url[路由對象:可以綁定的一組對應(yīng)關(guān)系]

urlpatterns[  
    url(r’^login/$’, views.login, name=’login’),
    url(),
    url(),
    ...
]
url(
    #第一個(gè)參數(shù) 正則 路徑 與處理函數(shù)綁定,
    #第二個(gè)參數(shù) 處理函數(shù) 與路徑綁定(#可傳參),
    (#第三個(gè)參數(shù) 給路由對象命名,)
)

視圖處理模塊:views.py

處理函數(shù)定義


創(chuàng)建子模塊應(yīng)用

django-admin startapp myblog

Django項(xiàng)目文件結(jié)構(gòu)

通過根項(xiàng)目來管理各個(gè)子項(xiàng)目模塊兴猩,實(shí)現(xiàn)項(xiàng)目功能的可伸縮性操作


附錄:虛擬開發(fā)環(huán)境
python2.X與python3.X的切換:
1、直接命令行切換python2 <--> python3
2早歇、pyenv軟件
3倾芝、創(chuàng)建虛擬環(huán)境——第三方模塊virtualenv
安裝:pip install virtualenv
在指定的文件夾中,創(chuàng)建一個(gè)虛擬環(huán)境

# 進(jìn)入django_1_11/目錄
cd worker/django_1_11/

# 創(chuàng)建一個(gè)虛擬環(huán)境
virtualenv d_1_11

# 進(jìn)入虛擬環(huán)境
./d_1_11/Scripts/activate

# 進(jìn)入django_1_8/目錄
cd worker/django_1_8/

# 創(chuàng)建一個(gè)虛擬環(huán)境
virtualenv d_1_8

# 進(jìn)入虛擬環(huán)境
./d_1_8/Scripts/activate

4箭跳、pycharm直接設(shè)置
在pycharm的設(shè)置settings中晨另,找project:project interpreter 添加虛擬環(huán)境,這樣pycharm中的該項(xiàng)目即會使用設(shè)置好的虛擬環(huán)境

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谱姓,一起剝皮案震驚了整個(gè)濱河市借尿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屉来,老刑警劉巖路翻,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茄靠,居然都是意外死亡茂契,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門慨绳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掉冶,“玉大人,你說我怎么就攤上這事脐雪⊙嵝。” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵喂江,是天一觀的道長。 經(jīng)常有香客問我旁振,道長获询,這世上最難降的妖魔是什么涨岁? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮吉嚣,結(jié)果婚禮上梢薪,老公的妹妹穿的比我還像新娘。我一直安慰自己尝哆,他們只是感情好秉撇,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秋泄,像睡著了一般琐馆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恒序,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天瘦麸,我揣著相機(jī)與錄音,去河邊找鬼歧胁。 笑死滋饲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喊巍。 我是一名探鬼主播屠缭,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼崭参!你這毒婦竟也來了呵曹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤阵翎,失蹤者是張志新(化名)和其女友劉穎逢并,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體郭卫,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砍聊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贰军。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玻蝌。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖词疼,靈堂內(nèi)的尸體忽然破棺而出俯树,到底是詐尸還是另有隱情,我是刑警寧澤贰盗,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布许饿,位于F島的核電站,受9級特大地震影響舵盈,放射性物質(zhì)發(fā)生泄漏陋率。R本人自食惡果不足惜球化,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓦糟。 院中可真熱鬧筒愚,春花似錦、人聲如沸菩浙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽劲蜻。三九已至陆淀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間斋竞,已是汗流浹背倔约。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坝初,地道東北人浸剩。 一個(gè)月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像鳄袍,于是被迫代替她去往敵國和親绢要。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345