Wsgi的web框架实例
2024-08-31 04:42:25
建立server服务端:
from wsgiref.simple_server import make_server
import time
def f1(request):
return [b'<h1>hello,Abook!</h1>']
def f2(request):
return [b'<h1>hello,Aweb!</h1>'] def cunrrent_time(request):
cur_time = time.ctime(time.time())
f=open('cunrrent_time.html','rb')
data=f.read()
data=str(data,'utf8').replace("!cur_time!",str(cur_time))
return [data.encode('utf8')]
#return [data]
def routers(): #封装一个元组可以根据点击的URL路径比配到相对应的函数
urlpatterns=(
('/book',f1),
('/web',f2),
('/time', cunrrent_time),
)
return urlpatterns def applicattion(environ,start_response):
#通过environ封装程一个所有请求信息的对象
#start_response可以很方便的设置响应头
#print("envire",environ)
#print("environ",environ['PATH_INFO'])
start_response('200 OK',[('Content-Types','textl/html'),('contex','text')])
path=environ['PATH_INFO'];#请求返回的路径
urlpatterns = routers()
func = None
for item in urlpatterns: #遍历循环找出和请求路径一样的地址
if item[0] == path:
func = item[1]
break if func:
return func(environ)
else:
return ['<h1>404!</h1>'.encode('utf8')]
#封装soket对象以及准备过程(socket,bind,listen)
http=make_server('',8080,applicattion)
print('Serving HTTP on port 8000....')
http.serve_forever()
cunrrent_time文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h11>cunrrent_time:!cur_time!</h11>
</body>
</html>
浏览器请求:
最新文章
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
- 约瑟夫环问题分析-C语言经典面试题
- 最新《App Store审核指南》翻译
- PHP 冒泡原理
- cocos2dx 锁定30帧设置
- 查看mysql 的物理存储路径
- 【poj3243-Clever Y】高次同余方程-拓展BabyStepGiantStep
- 转】MyEclipse使用总结——MyEclipse文件查找技巧
- Python模块整理(三):子进程模块subprocess
- Xamarin Mono Android Ios 安装、破解(4.12)
- windows7下系统保护中出现错误“文件名、目录名或卷标语法不正确。(0x8007007B)“ 以及保护设置列表中出现“Windows7_os(c:)(找不到)”选项时的解决方法
- css考核点整理(十二)-能描述下你在项目中都用到了哪些符合逐渐增强和优雅降级的理念的技巧吗
- TCP/IP学习(四)TCP缓冲区大小及限制(转)
- Udacity并行计算课程笔记-The GPU Programming Model
- ES6 Generators并发
- 【BZOJ1899】午餐(动态规划)
- tensorflow 代码阅读
- hasattr
- 转载的web server实例
- 使用SolrNet访问Solr-5.5.0