根据上一章节使用了路由映射到具体执行函数,今天进一步优化以及增加添加与修改
代码:
import os
import re
from pymysql import *
# 导入url编码模块
import urllib.parse
# 添加日志模块
import logging
# 测试使用
# print(os.path.abspath(__file__)) # 显示当前文件的地址
# print(os.getcwd()) # 显示主程序入口的地址
# 定义一个字典来储存方法的引用,key=访问路径,value=函数引用
route_dict = dict()
def route(url):
def set_func(func):
# 将所有函数的引用保存到字典中,后续调用
route_dict[url] = func
def call_func(*args, **kwargs):
return func(*args, **kwargs)
return call_func
return set_func
@route(r"/index.py")
def index(info, ret):
with open(info["template"] + "/index.html", encoding="utf-8") as f:
content = f.read()
# 链接数据库
con = connect(host='localhost', port=3306, database='stock_db', user='root', password='root', charset='utf8')
cursor = con.cursor()
sql = "select * from info;"
cursor.execute(sql)
# 查询数据
data_from_mysql = cursor.fetchall()
html = ""
# 拼接html
for tr_data in data_from_mysql:
# print(tr_data)
html += "<tr>"
for td_data in tr_data:
html += f"<td>{td_data}</td>"
html += """<td>
<input type="button" value="添加" id="toAdd" name="toAdd" systemidvaule="%s">
</td>
""" % tr_data[1]
html += "</tr>"
# print(html)
content = re.sub(r"\{%content%\}", html, content)
cursor.close()
con.close