from utils import log
from models import Message
from models import User
# 這個(gè)函數(shù)用來(lái)保存所有的 messages
message_list = []
def template(name):
"""
根據(jù)名字讀取 templates 文件夾里的一個(gè)文件并返回
"""
path = 'templates/' + name
with open(path, 'r', encoding='utf-8') as f:
return f.read()
def route_index(request):
"""
主頁(yè)的處理函數(shù), 返回主頁(yè)的響應(yīng)
"""
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):
"""
登錄頁(yè)面的路由函數(shù)
"""
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 = '用戶名或者密碼錯(cuò)誤'
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):
"""
注冊(cè)頁(yè)面的路由函數(shù)
"""
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 = '注冊(cè)成功<br> <pre>{}</pre>'.format(User.all())
else:
result = '用戶名或者密碼長(zhǎng)度必須大于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):
"""
消息頁(yè)面的路由函數(shù)
"""
log('本次請(qǐng)求的 method', request.method)
if request.method == 'POST':
form = request.form()
msg = Message(form)
log('post', form)
message_list.append(msg)
# 應(yīng)該在這里保存 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):
"""
靜態(tài)資源的處理函數(shù), 讀取圖片并生成響應(yīng)返回
"""
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 是路由處理函數(shù)(就是響應(yīng))
route_dict = {
'/': route_index,
'/login': route_login,
'/register': route_register,
'/messages': route_message,
}
routes
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- Application和Activity,Service一樣是Android框架的一個(gè)系統(tǒng)組件,當(dāng)Android程...
- 人生就是一個(gè)不斷跟過去的自己揮手告別,獨(dú)立成長(zhǎng)的過程。 我們總覺得過去的自己很傻,其實(shí)再過一段時(shí)間,你就會(huì)發(fā)現(xiàn),現(xiàn)...
- 我們相識(shí)從20世紀(jì)到21世紀(jì),我們的關(guān)系已經(jīng)到了跨世紀(jì)的階段,我還希望我們能夠一起渡過21世紀(jì),我知道這也不可能了...
- 暮色下的鐘塔,臨摹自飛樂鳥著的《風(fēng)景繪》。 一、線稿 這幅畫在《風(fēng)景繪》的第一步驟上的線稿,比例有一點(diǎn)問題。最后只...