import re,
# 定义空字典
URL_DICT=dict()
# 定义装饰器
def route(url):
def set_func(func):
URL_DICT[url] = func
def call_func(*args,**kwargs):
return func(*args,**kwargs)
return call_func
return set_func
@route('/index.html')
def index(ret):
# 打开文件
with open ('./templates/index.html') as f:
content = f.read()
# 创建connection链接
conn = connect(host='localhost',port=3306,user='root',password='mysql',database='stock_db',charset='utf8')
# 创建cursor游标对象
cs = conn.cursor()
# 执行sql语句
sql = 'select * from info ;'
cs.execute(sql)
tuples = cs,fetchone()
url_template = '''
'''
html = ''
for info in tuples:
html += url_template % (info[0].......)
content = re.sub(r'\{%content%\}',html,content)
return content
@route('/center.html')
def center(ret):
with open ('./templates/center.html') as f:
content = f.read()
#
@route('/add/(\d+)\.html')
def add_focus(ret):
'''添加关注'''
stock_code = ret.group(1)
# 创建connect链接
conn = connect(host='localhost',port=3306,user='root',password='mysql',database='stock_db',charset='utf8')
# 创建cursor游标对象
cs = conn.cursor()
# 执行sql语句
# 1.1 判断是否有这支股票
sql = 'select * from info where code=%s'
cs.execute(sql,(stock_code,)
# 如果不存在这支股票
if not cs.fetchone():
cs.close()
conn.close()
return '这只股票不存在,大哥手下留情吧,我们是创业公司'
# 1.2 判断股票是否关注
sql = 'select * from info as i inner join focus as f on i.id=f.info_id where i.code = %s'
cs.execute(sql,(stock_code,)
# 如果股票已经关注
if cs.fetchone():
cs.close()
conn.close()
return '股票%s已经被关注,请勿重复关注' % stock_code
# 添加股票
sql = 'insert into focus(info_id) select id from info as i where i.code=%s'
cs.execute(sql,(stock_code,)
conn.commit()
cs.close()
conn.close()
return '添加成功'
@route('/del/(\d+)\.html')
def del_focus(ret):
'''删除股票'''
stock_code = ret.group(1)
# 创建connect链接
conn = connect(host='localhost',port=3306,user='root',password='mysql',database='stock_db',charset='utf8')
# 创建cursor游标对象
cs = conn.cursor()
# 执行sql语句
# 1.1 判断是否有这支股票
sql = 'select * from info where code=%s'
cs.execute(sql,(stock_code,)
# 如果不存在这支股票
if not cs.fetchone():
cs.close()
conn.close()
return '这只股票不存在,大哥手下留情吧,我们是创业公司'
# 1.2 判断股票是否关注
sql = 'select * from info as i inner join focus as f on i.id=f.info_id where i.code = %s'
cs.execute(sql,(stock_code,)
# 如果股票已经关注
if not cs.fetchone():
cs.close()
conn.close()
return '股票%s还没有被关注,删除无效' % stock_code
# 删除股票
sql = 'delete from focus as f inner join info as i on f.info_id=i.id where i.code=%s'
cs.execute(sql,(stock_code,)
conn.commit()
cs.close()
conn.close()
return '删除成功'
@route('/update/(\d+)\.html')
def show_update_page(ret):
'''显示修改的页面'''
stock_code = ret.group(1)
with open ('./templates/update.html') as f:
content = f.read()
# 创建connection链接
conn = connect(host='localhost',port=3306,user='root',password='mysql',datdabase='stock_db',charset='utf8')
# 创建cursor游标对象
cs = conn.cursor()
# 执行sql语句
sql = 'select f.note_info from focus as f inner join info as i on f.info_id = i.id where i.code = %s'
cs.execute(sql,(stock_code,)
cs.close()
conn.close()
content = re.sub(r'\{%content%\}',stock_info[0],content)
content = re.sub(r'\{%content%\}',stock_code,content)
return content
@route('/update/(\d+)/(.*)\.html')
def save_update_focus(ret);
'''保存修改页面'''
stock_code = ret.group(1)
stock_info = ret.group(2)
comment = urllib.parse.unquote(stock_info)
with open ('./templates/updata.html') as f:
content = f.read()
# 创建connection链接
conn =connect(host='localhost',port=3306,user='root',password='mysql',database='stock_db',charset='utf8')
# 创建cursor游标对象
cs = conn.cursor()
# 执行sql语句
sql = 'update focus as f inner join info as i on f.info_id = i.id set f.note_info = %s where i.code=%s';
cs.execute(sql,(comment,stock_code)
conn.commit()
cs.close()
conn.close()
return '修改成功'
def application(env,server_frame):
'''WSGI接口'''
staus = '200 OK'
sponse_header = [('Content-Type','text/html;charset='utf-8')]
file_name = env['PATH_INTO']
try:
# return URL-DICT[file_name]()
for url,func in URL_DICT.items():
ret = re.match(url,file_name)
if ret:
return func()
else:
return '没有该函数%s可执行' % file_name
except Exception as ret:
return '产生异常%s' % str(ret)