mini-web框架-从mysql中查询数据
my_web.py(更新)
import pymysql
import time
import os
import re
template_root = "./templates"
g_url_route = dict()
def route(url):
    def func1(func):
        
        g_url_route[url]=func
        def func2(file_name):
            return func(file_name)
        return func2
    return func1
@route("/index.html")
def index(file_name):
    """返回index.html需要的页面内容"""
    
    try:
        file_name = file_name.replace(".py", ".html")
        f = open(template_root + file_name)
    except Exception as ret:
        return "%s" % ret
    else:
        content = f.read()
        f.close()
        
        
        db = pymysql.connect(host='localhost',port=3306,user='root',password='mysql',database='stock_db',charset='utf8')
        cursor = db.cursor()
        sql = """select * from info;"""
        cursor.execute(sql)
        data_from_mysql = cursor.fetchall()
        cursor.close()
        db.close()
        content = re.sub(r"\{%content%\}", str(data_from_mysql), content)
        return content
@route("/center.html")
def center(file_name):
    """返回center.html需要的页面内容"""
    
    try:
        file_name = file_name.replace(".py", ".html")
        f = open(template_root + file_name)
    except Exception as ret:
        return "%s" % ret
    else:
        content = f.read()
        f.close()
        data_from_mysql = "暂时没有数据,,,,~~~~(>_<)~~~~ "
        content = re.sub(r"\{%content%\}", data_from_mysql, content)
        return content
def application(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-Type', 'text/html')]
    start_response(status, response_headers)
    file_name = environ['PATH_INFO']
    try:
        return g_url_route[file_name](file_name)
    except Exception as ret:
        return "%s" % ret
    else:
        return str(environ) + '-----404--->%s\n'