4 将数据库的表数据利用模板语法展示到前端页面
wsgiref
from wsgiref.simple_server import make_server from urls import urls from views import error def run(request,response): response("200 ok",[]) target_url=request.get("PATH_INFO") func=None for url_tuple in urls: if target_url==url_tuple[0]: func=url_tuple[1] break if func: res=func(request) else: res=error(request) return [res.encode('utf8')] if __name__ == '__main__': server=make_server("127.0.0.1",8080,run) server.serve_forever()
urls
from views import * urls=[("/index",index), ("/login",login), ("/get_time",get_time), ("/get_dict",get_dict), ("/get_user",get_user) ]
views
def index(request): # return "index页面" with open(r'templates/index.html','r',encoding='utf8') as f: return f.read() def login(request): return "login 页面" from datetime import datetime def get_time(request): ctime=datetime.now().strftime("%Y-%m-%d %X") with open(r"templates/get_time.html","r",encoding='utf8') as f: data=f.read() data=data.replace("dsfbgfn",ctime) return data from jinja2 import Template user={'username':'jason','pwd':123,'hobby':['read','study']} def get_dict(request): with open(r"templates/get_dict.html",'r',encoding='utf8') as f: data=f.read() res=Template(data) temp=res.render({"user_dict":user}) return temp import pymysql def get_user(request): conn=pymysql.connect( host="127.0.0.1", port=3306, user="root", password='123', database="db8", charset='utf8', autocommit=True ) cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) sql="select * from user" cursor.execute(sql) data_list=cursor.fetchall() with open(r"templates/get_user.html","r",encoding="utf8") as f: data=f.read() res=Template(data) tmp=res.render({"data_list":data_list}) return tmp def error(equest): return "404 error"
get_user
"en"> "UTF-8">Title "https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">">class="container">class="row">class="text-center">用户数据
class="col-md-8 col-md-offset-2">class="table table-hover table-striped">
{% for user_dict in data_list %} 编号 姓名 密码 {% endfor %} {{user_dict.id}} {{user_dict.name}} {{user_dict.pwd}}
此时cmd增加数据,刷新也会同步增加