wsgiref版web
"""根據url中不同的路徑返回不同的內容--函式高階版
返回html頁面
讓網頁動態起來
wsgiref模組版
"""import time
from wsgiref.******_server import make_server
# 將返回不同的內容部分封裝成函式
def yimi(url):
with open("yimi.html", "r", encoding="utf8") as f:
s = f.read()
now = str(time.time())
s = s.replace("@@xx@@", now)
return bytes(s, encoding="utf8")
def xiaohei(url):
with open("xiaohei.html", "r", encoding="utf8") as f:
s = f.read()
return bytes(s, encoding="utf8")
# 定義乙個url和實際要執行的函式的對應關係
list1 = [
("/yimi/", yimi),
("/xiaohei/", xiaohei),
]def run_server(environ, start_response):
start_response('200 ok', [('content-type', 'text/html;charset=utf8'), ]) # 設定http響應的狀態碼和頭資訊
url = environ['path_info'] # 取到使用者輸入的url
print("我在8090等你哦...")
httpd.serve_forever()
jiaja2web版框架
from wsgiref.******_server import make_server
from jinja2 import template
def index():
with open("09 jinja2版web框架.html", "r", encoding="utf-8") as f:
data = f.read()
template = template(data) # 生成模板檔案
# 從資料庫中取資料
import pymysql
conn = pymysql.connect(
host="127.0.0.1",
port=3306,
user="root",
password="123456",
database="day59",
charset="utf8",
)cursor = conn.cursor(cursor=pymysql.cursors.dictcursor)
cursor.execute("select * from userinfo;")
user_list = cursor.fetchall()
# 實現字串的替換
ret = template.render() # 把資料填充到模板裡面
return [bytes(ret, encoding="utf8"), ]
def home():
with open("home.html", "rb") as f:
data = f.read()
return [data, ]
# 定義乙個url和函式的對應關係
url_list = [
("/index/", index),
("/home/", home),
]def run_server(environ, start_response):
start_response('200 ok', [('content-type', 'text/html;charset=utf8'), ]) # 設定http響應的狀態碼和頭資訊
url = environ['path_info'] # 取到使用者輸入的url
func = none # 將要執行的函式
for i in url_list:
if i[0] == url:
func = i[1] # 去之前定義好的url列表裡找url應該執行的函式
break
if func: # 如果能找到要執行的函式
return func() # 返回函式的執行結果
else:
return [bytes("404沒有該頁面", encoding="utf8"), ]
分布式框架演變 學習筆記
常見的伺服器架構 單體應用 部署多型伺服器 通過nginx做負載均衡 資料庫讀寫分離 具體某乙個模組的 資料庫讀寫分離 如果某乙個模組讀寫操作都很多,把這個模組的資料庫單獨分出來 分庫分表 垂直分庫,水平分表 hash 優點 均衡,缺點 擴容 range,list 根據userid,orderid,...
springMVC 框架原理
springmvc是spring框架的乙個模組,springmvc和spring無需通過中間整合層進行整合 springmvc是基於mvc的web框架。第一步 發起請求到前端控制器 dispatcherservlet 第四步 前端控制器呼叫處理器介面卡去執行handler 第五步 處理器介面卡去執行...
Spring MVC框架原理
spring mvc屬於springframework的後續產品,已經融合在spring web flow裡面。spring 框架提供了構建 web 應用程式的全功能 mvc 模組。使用 spring 可插入的 mvc 架構,從而在使用spring進行web開發時,可以選擇使用spring的spri...