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增加数据,刷新也会同步增加