wsgiref实现web框架

本文介绍了如何利用wsgiref模块构建简单的Web框架,从基础的socket通信开始,逐步过渡到使用wsgiref简化服务端代码,并展示了MTV模式的应用,包括数据库查询、URL路由和视图处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、web框架基本写法

python服务端:

用socket建立服务端、客户端通信,多线程加载文件

import socket
from threading import Thread
server=socket.socket()
server.bind(('127.0.0.1',8002))
server.listen()
def html(conn):
	with open('web.html',mode="rb") as fp:
		content=fp.read()
		conn.send(content)
		conn.close()
def js(conn):
	with open('js/js.js',mode="rb") as fp:
		content=fp.read()
		conn.send(content)
		conn.close()
def css(conn):
	with open('css/css.css',mode="rb") as fp:
		content=fp.read()
		conn.send(content)
		conn.close()
def img1(conn):
	with open('img/wwhm1.jpg',mode="rb") as fp:
		content=fp.read()
		conn.send(content)
		conn.close()
def img2(conn):
	with open('img/wwhm2.jpg',mode="rb") as fp:
		content=fp.read()
		conn.send(content)
		conn.close()
urls=[
	('/',html),
	('/js/js.js',js),
	('/css/css.css',css),
	('/img/wwhm1.jpg',img1),
	('/img/wwhm2.jpg',img2)
]
while True:
	conn,addr=server.accept()
	res=conn.recv(1024)
	print(res)
	conn.send(b'HTTP/1.1 200 ok\r\n\r\n') #
	path=res.decode('utf-8').split()[1]
	for url in urls:
		if url[0] == path:
			t=Thread(target=url[1],args=(conn,))
			t.start()

html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值