一、web框架
web框架就是在以上十幾行代碼基礎張擴展出來的,有很多簡單方便使用的方法,大大提高了開發的效率
二、基于wsgiref寫一個web框架

models.py
''' 鏈接資料庫回傳字典格式: cursor=pymysql.cursors.DictCursor ''' import pymysql #連接資料庫 conn = pymysql.connect(host='127.0.0.1',port= 3306,user = 'root',passwd='123456',db='web') #db:庫名 #創建游標 cur = conn.cursor() sql=''' create table userinfo( id INT PRIMARY KEY , name VARCHAR(32) , password VARCHAR(32) ) ''' cur.execute(sql) #提交 conn.commit() #關閉指標物件 cur.close() #關閉連接物件 conn.close()models.py
myserver.py
from wsgiref.simple_server import make_server from urls import url_patters def server(environ, start_response): # 必須傳兩個引數 start_response('200 OK', [('Content-Type', 'text/html')]) func=None for item in url_patters: if item[0] == environ.get('PATH_INFO'): func = item[1] break if func: data = func(environ, start_response) else: data='error'.encode('utf-8') return [data] if __name__ == '__main__': myserver = make_server('127.0.0.1', 8081, server) myserver.serve_forever()myserver.py
urls.py
# 路徑和函式對應關系 from views import * url_patters = [ ('/login', login), ('/index', index), ('/time', time), ('/order', order), ]urls.py
views.py
def login(environ, start_response): with open('templates/login.html', 'rb') as f: data = f.read() return data def index(environ, start_response): with open('templates/index.html', 'rb') as f: data = f.read() return data def time(environ, start_response): import time with open('templates/time.html', 'r', encoding='utf-8') as f: # replace(替換前 ,替換后) data = https://www.cnblogs.com/guojieying/archive/2020/09/25/f.read().replace('{{time}}', str(time.time())) return data.encode('utf-8') def order(environ, start_response): return 'order'.encode('utf-8')views.py
tempaltes下backend.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 登錄成功 </body> </html>tempaltes下backend.html
tempaltes下index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> index </body> </html>tempaltes下index.html
tempaltes下login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h4>登錄頁面</h4> <form action="http://127.0.0.1:8011/login" method="post"> 用戶名 <input type="text" name="user"> 密碼 <input type="text" name="pwd"> <input type="submit"> </form> </body> </html>tempaltes下login.html
其它socket服務端
'cgi': CGIServer, 'flup': FlupFCGIServer, 'wsgiref': WSGIRefServer, 'waitress': WaitressServer, 'cherrypy': CherryPyServer, 'paste': PasteServer, 'fapws3': FapwsServer, 'tornado': TornadoServer, 'gae': AppEngineServer, 'twisted': TwistedServer, 'diesel': DieselServer, 'meinheld': MeinheldServer, 'gunicorn': GunicornServer, 'eventlet': EventletServer, 'gevent': GeventServer, 'geventSocketIO':GeventSocketIOServer, 'rocket': RocketServer, 'bjoern' : BjoernServer, 'auto': AutoServer,其它socket服務端
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/134982.html
標籤:其他
