建立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>

浏览器请求:

最新文章

  1. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
  2. 约瑟夫环问题分析-C语言经典面试题
  3. 最新《App Store审核指南》翻译
  4. PHP 冒泡原理
  5. cocos2dx 锁定30帧设置
  6. 查看mysql 的物理存储路径
  7. 【poj3243-Clever Y】高次同余方程-拓展BabyStepGiantStep
  8. 转】MyEclipse使用总结——MyEclipse文件查找技巧
  9. Python模块整理(三):子进程模块subprocess
  10. Xamarin Mono Android Ios 安装、破解(4.12)
  11. windows7下系统保护中出现错误“文件名、目录名或卷标语法不正确。(0x8007007B)“ 以及保护设置列表中出现“Windows7_os(c:)(找不到)”选项时的解决方法
  12. css考核点整理(十二)-能描述下你在项目中都用到了哪些符合逐渐增强和优雅降级的理念的技巧吗
  13. TCP/IP学习(四)TCP缓冲区大小及限制(转)
  14. Udacity并行计算课程笔记-The GPU Programming Model
  15. ES6 Generators并发
  16. 【BZOJ1899】午餐(动态规划)
  17. tensorflow 代码阅读
  18. hasattr
  19. 转载的web server实例
  20. 使用SolrNet访问Solr-5.5.0

热门文章

  1. [c/c++]可变参数的使用
  2. rtmp和http方式在播放flv方面的各自优势和劣势
  3. 大数据离线分析平台 用户数据Etl
  4. JAVAFX开发桌面应用
  5. WEKA从sqlite数据库文件导入数据
  6. 《亲测》nginx webscoket ssl conf配置示例
  7. Java多线程编程——并发编程原理(分布式环境中并发问题)
  8. 【json】使用json和java对象的序列化和反序列化
  9. 【剑指offer】逆序输出链表
  10. ubuntu MySQL拒绝远程连接(10061)