日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python mvc web_浅谈python_web的MVC和MTV

發布時間:2025/3/21 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python mvc web_浅谈python_web的MVC和MTV 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、作者感悟

之前學了java,可以簡單的用ssm框架寫點網頁,后來入黑盒測試,自學了python,但說實話我更比較喜歡java那種規規矩矩,現在只是自己 寫個腳本爬蟲更多的會用python靈活

二、什么是MVC、MTV

python 的MVC和java的一樣,分別是Model、View、Controller,也就是我們通常說的模型(model)-視圖(view)-控制器(controller),分別對應著數據庫、模板文件、業務處理。

MTV 分別是 Model、Template、View,分別對應的是數據庫、模板文件、業務處理,python Django,用的就是MTV模式

三、初識python 的web流程

要知道代碼的邏輯關系,和數據走向,這是我當時學java ssm框架時候心得,python 自學也從這句話開始.

WSGI(Web Server Gateway Interface),python標準庫提供的獨立WSGI服務器稱為wsgiref。

from wsgiref.simple_server import make_server

def RunServer(environ, start_response):

#environ 客戶發來的所有信息 environ['PATH_INFO']獲取地址

#start_response 返回響應信息

start_response('200 OK',[('Content-Type', 'text/html')])

return ['

Python

'.encode('utf-8')]

if __name__ == '__main__':

httpd = make_server('',8000,RunServer)

httpd.serve_forever()

訪問http://127.0.0.1:8000/,就能看到頁面python

下一步要做的就是,有多個頁面對應多個響應信息,environ是個字典,里面就有從客戶端返回的地址信息environ['PATH_INFO']

from wsgiref.simple_server import make_server

def RunServer(environ, start_response):

start_response('200 OK', [('Content-Type', 'text/html')])

current_url = environ['PATH_INFO']

#http://127.0.0.1:8000/index

if current_url == '/index':

return ['

welcome

'.encode('utf-8')]

#http://127.0.0.1:8000/data

elif current_url == '/data':

return ['

DATa

'.encode('utf-8')]

#必須寫,因為客戶端會給服務器端發送/favicon.ico 也就是ico圖片

else:

return ['

404

'.encode('utf-8')]

if __name__ == '__main__':

httpd = make_server('',8000,RunServer)

httpd.serve_forever()

else 是必須寫的因為客戶端會返回/favicon.ico 這樣我們的代碼可以對他做判斷,上面的代碼其實我們可以吧 /index 和/data 寫成函數如下:

from wsgiref.simple_server import make_server

#/data

def handle_data():

return ['

DATa

'.encode('utf-8')]

#/index

def handle_index():

return ['

welcome

'.encode('utf-8')]

def RunServer(environ, start_response):

start_response('200 OK', [('Content-Type', 'text/html')])

current_url = environ['PATH_INFO']

#http://127.0.0.1:8000/index

if current_url == '/index':

return handle_data()

#http://127.0.0.1:8000/data

elif current_url == '/data':

#必須寫,因為客戶端會給服務器端發送/favicon.ico 也就是ico圖片

return handle_index()

else:

return ['

404

'.encode('utf-8')]

if __name__ == '__main__':

httpd = make_server('',8000,RunServer)

httpd.serve_forever()

要是 20個網頁我們就給寫20個if判斷么,這時候我們就可以用字典來解決這個問題

from wsgiref.simple_server import make_server

def handler_index():

return ['index'.encode('utf-8')]

def handler_data():

return ['data'.encode('utf-8')]

#用字典封裝方法

URL_DICT = {

'/data' : handler_data,

'/index' : handler_index,

}

def RunServer(environ, start_response):

#environ 客戶端返回

#start_response 服務器端響應給用戶

start_response('200 OK',[('Concent-Type', 'text/html')])

current_url = environ['PATH_INFO']

fun = None

#先用變量接收

if current_url in URL_DICT:

fun = URL_DICT[current_url]

if fun:

return fun()

else:

return ['404'.encode('utf-8')]

if __name__ == '__main__':

httpd = make_server('',8000,RunServer)

httpd.serve_forever()

我的網頁要是有很多內容怎么辦,總不能在return 全拼出來吧,這時候就是MVC登場了

image.png

首先我們創建一個文件夾叫Controller,這里面是處理層,我們把剛才的寫的響應給用戶展示的方法放在account.py 文件

#用io 讀的方法,去讀取放在VIEW層的頁面

def handler_index():

with open('/views/index','rb') as f:

data = f.read()

#替換html內容 data.replace()

f.close()

return [data,]

def handler_data():

return ['data'.encode('utf-8')]

我們創建一個VIEWS層,里面用來存放我們的html

我們在寫一個入口

from wsgiref.simple_server import make_server

#卻controller 讀取我們的 方法

from Controller import account

#用字典封裝方法

URL_DICT = {

'/data' : account.handler_data,

'/index' : account.handler_index,

}

def RunServer(environ, start_response):

#environ 客戶端返回

#start_response 服務器端響應給用戶

start_response('200 OK',[('Concent-Type', 'text/html')])

current_url = environ['PATH_INFO']

fun = None

#先用變量接收

if current_url in URL_DICT:

fun = URL_DICT[current_url]

if fun:

return fun()

else:

return ['404'.encode('utf-8')]

if __name__ == '__main__':

httpd = make_server('',8000,RunServer)

httpd.serve_forever()

總結

以上是生活随笔為你收集整理的python mvc web_浅谈python_web的MVC和MTV的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。