【web框架前戏】

自己开发Web框架
  - socket
  - http协议
  - HTML知识
  - 数据库(pymysql,SQLAlchemy)

小总结

 〖Python〗-- Web框架本质

应用:通过函数去调用对应的页面,先获取响应的页面信息,再传给客户端!(看代码!)

1、静态页面:网址内容写死,直接跳转显示,数据无法动态更新。

import socket
import pymysql

def foo(request):
    f = open("login.html","rb")
    data = f.read()
    f.close()
    return data

def var(request):
    f = open("userinfo.html","rb")
    data = f.read()
    f.close()
    return data



routers=[
    ("/xxx",foo),
    ("/ooo",var),
]

#web服务
def run():
    sk = socket.socket()
    sk.bind(("127.0.0.1",8080))
    sk.listen(5)

    while True:
        conn,addr = sk.accept()
        data = conn.recv(8096)   #接收浏览器发送的请求头
        data_str = str(data,encoding="utf-8")
        headers,bodys = data_str.split("\r\n\r\n")
        temp_list = headers.split("\r\n")
        method,url,protocal = temp_list[0].split(" ")

        conn.send(b"HTTP/1.1 200 OK\r\n\r\n") #回应响应头
        func_name = None
        for item in routers:
            if item[0] == url:
                func_name = item[1]
                break

        if func_name:
            res = func_name(data_str)
        else:
            res = b"404"

        conn.send(res) #回应响应体(网页主体文本内容)
        conn.close()

if __name__ == '__main__':
    run()
index.py

相关文章: