from utils import log
from models import Message
from models import User
# 这个函数用来保存所有的 messages
message_list = []
def template(name):
"""
根据名字读取 templates 文件夹里的一个文件并返回
"""
path = 'templates/' + name
with open(path, 'r', encoding='utf-8') as f:
return f.read()
def route_index(request):
"""
主页的处理函数, 返回主页的响应
"""
header = 'HTTP/1.x 210 VERY OK\r\nContent-Type: text/html\r\n'
body = template('index.html')
r = header + '\r\n' + body
return r.encode(encoding='utf-8')
def route_login(request):
"""
登录页面的路由函数
"""
header = 'HTTP/1.x 210 VERY OK\r\nContent-Type: text/html\r\n'
if request.method == 'POST':
form = request.form()
u = User(form)
if u.validate_login():
result = '登录成功'
else:
result = '用户名或者密码错误'
else:
result = ''
body = template('login.html')
body = body.replace('{{result}}', result)
r = header + '\r\n' + body
return r.encode(encoding='utf-8')
def route_register(request):
"""
注册页面的路由函数
"""
header = 'HTTP/1.x 210 VERY OK\r\nContent-Type: text/html\r\n'
if request.method == 'POST':
form = request.form()
u = User(form)
if u.validate_register():
u.save()
result = '注册成功<br> <pre>{}</pre>'.format(User.all())
else:
result = '用户名或者密码长度必须大于2'
else:
result = ''
body = template('register.html')
body = body.replace('{{result}}', result)
r = header + '\r\n' + body
return r.encode(encoding='utf-8')
def route_message(request):
"""
消息页面的路由函数
"""
log('本次请求的 method', request.method)
if request.method == 'POST':
form = request.form()
msg = Message(form)
log('post', form)
message_list.append(msg)
# 应该在这里保存 message_list
header = 'HTTP/1.x 200 OK\r\nContent-Type: text/html\r\n'
# body = '<h1>消息版</h1>'
body = template('html_basic.html')
msgs = '<br>'.join([str(m) for m in message_list])
body = body.replace('{{messages}}', msgs)
r = header + '\r\n' + body
return r.encode(encoding='utf-8')
def route_static(request):
"""
静态资源的处理函数, 读取图片并生成响应返回
"""
filename = request.query.get('file', 'doge.gif')
path = 'static/' + filename
with open(path, 'rb') as f:
header = b'HTTP/1.x 200 OK\r\nContent-Type: image/gif\r\n\r\n'
img = header + f.read()
return img
# 路由字典
# key 是路由(路由就是 path)
# value 是路由处理函数(就是响应)
route_dict = {
'/': route_index,
'/login': route_login,
'/register': route_register,
'/messages': route_message,
}
routes
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Application和Activity,Service一样是Android框架的一个系统组件,当Android程...
- 人生就是一个不断跟过去的自己挥手告别,独立成长的过程。 我们总觉得过去的自己很傻,其实再过一段时间,你就会发现,现...