博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单搭建WEB框架及原理
阅读量:4664 次
发布时间:2019-06-09

本文共 2191 字,大约阅读时间需要 7 分钟。

一、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的代码
       
登录
@@content@@
SID Name Gender Class_id

转载于:https://www.cnblogs.com/huanghongzheng/p/11158699.html

你可能感兴趣的文章
移动js
查看>>
.net core 记录
查看>>
一个快速将十六进制串转十进制数的方法
查看>>
VS中的build events
查看>>
HDU 1556 线段树或树状数组,插段求点
查看>>
2016 ECJTU - STL
查看>>
codeforces 964D 思维,dfs
查看>>
Python 学习小结
查看>>
ARCGIS接口详细说明
查看>>
STL之vector容器
查看>>
容器启动后执行和执行数据库脚本
查看>>
安装 Panda3D 并使用原有的Python
查看>>
java8List集合根据对象的属性去重
查看>>
获取select标签的自定义属性
查看>>
小波变换C代码
查看>>
nltk——文本分类
查看>>
Uploadify 之使用
查看>>
跨域问题
查看>>
【美团面试题】——图遍历
查看>>
JS基本操作
查看>>