web框架就是在以上十幾行代碼基礎張擴展出來的,有不少簡單方便使用的方法,大大提升了開發的效率
models.pyhtml
''' 連接數據庫返回字典格式: 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()
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()
# 路徑和函數對應關係 from views import * url_patters = [ ('/login', login), ('/index', index), ('/time', time), ('/order', order), ]
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 = f.read().replace('{{time}}', str(time.time())) return data.encode('utf-8') def order(environ, start_response): return 'order'.encode('utf-8')
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 登陸成功 </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> index </body> </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>
'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,