一、web框架搭建分一下几步
1、首先搭建一个服务器接收客户端发来的请求数据包
2、对客户端发来的数据包进行分析与拆分得到想要的数据
header = data.split('\r\n\r\n')[0].split('\r\n')[0]
url = header.split(' ')[1]3、创建一个路由关系映射,将不同的请求映射到不同的方法种
4、在方法使用mysql中连接数据库,并将得到的数据进行循环拼接成html中的表格的形式
5、将拼接后的数据和html文件中的@@content@@进行替换
6、换回替换后的数据给客户端
二、代码
.py的代码
import socket def f1(): fp = open('index.html', 'rb') data = fp.read() fp.close() return data def f2(): import pymysql conn = pymysql.connect(host='127.0.0.1',user='root',password='456',db='db1',charset='utf8') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) sql = 'select sid,sname,gender,class_id from student' cursor.execute(sql) res = cursor.fetchall() print(res) res_list = [] for user in res: res_str = '%s%s%s%s' % (user['sid'],user['sname'],user['gender'],user['class_id']) res_list.append(res_str) s = ' '.join(res_list) fp = open('index.html', 'r',encoding='utf-8') data = fp.read() data = data.replace('@@content@@',s) fp.close() return bytes(data,encoding='utf-8') router = [ ('/index', f1), ('/xxx', f2), ] def run(): server = socket.socket() server.bind(('127.0.0.1',9999)) server.listen(5) while True: cli,add = server.accept() buf = cli.recv(1024) if not buf: print('断开连接') cli.close() data = str(buf,encoding='utf-8') header = data.split('\r\n\r\n')[0].split('\r\n')[0] url = header.split(' ')[1] func_name = None for i in router: if i[0] == url: func_name = i[1] break if func_name: res = func_name() else: res = b'404' cli.send(bytes('HTTP/1.1 200 OK\r\n\r\n',encoding='utf-8')) cli.send(res) cli.close() if __name__ == '__main__': run() .html的代码
登录
SID | Name | Gender | Class_id |
---|