python 练习 simple_server 判断路径及返回函数
函数 routers 返回一个 urlpatterns 元组,里面包含了路径名和函数名;在 函数 application 中遍历 urlpatterns 元组,路径存在则返回函数名,不存在则返回 404
from wsgiref.simple_server import make_server
def routers():
    urlpatterns = (
        ('/book', f1),
        ('/web', f2),
    )
    return  urlpatterns
def f1(x):
    return [b'<h1>Hello, book</h1>']
def f2(x):
    return [b'<h1>Hello, web</h1>']
def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    urlpatterns = routers()
    path = environ["PATH_INFO"]
    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")]
httpd = make_server('', 8888, application)
print('Serving HTTP on port 8888...')
httpd.serve_forever()
python 练习 simple_server 判断路径及返回函数的更多相关文章
- Python输入数据类型判断正确与否的函数大全(非常全)
		对于python输入数据类型判断正确与否的函数大致有三类: (1)type(),它的作用直接可以判断出数据的类型 (2)isinstance(),它可以判断任何一个数据与相应的数据类型是否一致,比 ... 
- Python学习笔记(九)返回函数
		摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318352367 ... 
- Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊
		函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计 ... 
- Python复习笔记(四)高阶函数/返回函数/匿名函数/偏函数/装饰器
		一.map/reduce map map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次 作用到序列的每个元素,并把结果作为新的Iterator返回. reduce r ... 
- (转)Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)
		原文:https://www.cnblogs.com/chenwolong/p/reduce.html 函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数 ... 
- Python:Base4(map,reduce,filter,自定义排序函数(sorted),返回函数,闭包,匿名函数(lambda) )
		1.python把函数作为参数: 在2.1小节中,我们讲了高阶函数的概念,并编写了一个简单的高阶函数: def add(x, y, f): return f(x) + f(y) 如果传入abs作为参数 ... 
- python的高级特性3:神奇的__call__与返回函数
		__call__是一个很神奇的特性,只要某个类型中有__call__方法,,我们可以把这个类型的对象当作函数来使用. 也许说的比较抽象,举个例子就会明白. In [107]: f = abs In [ ... 
- python基础——返回函数
		python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ... 
- python 返回函数
		返回函数 Python的函数不但可以返回int.str.list.dict等数据类型,还可以返回函数! 例如,定义一个函数 f(),我们让它返回一个函数 g,可以这样写: def f(): print ... 
随机推荐
- Golang Go Go Go part1:安装及运行
			golang 知识图谱 https://www.processon.com/view/link/5a9ba4c8e4b0a9d22eb3bdf0 一.安装 最新版本安装包地址:https://gola ... 
- 数据调试~~TCP转串口、串口转TCP调试
			Android socket开发了一个socket客户端,当输入服务器ip以及端口,建立连接之后,Android可以发送数据到电脑接收服务器端. 如果电脑端没有socket服务器怎么办?方法如下: 1 ... 
- QEMU KVM Libvirt手册(9): network
			虚拟网卡由-net nic定义 # qemu-system-x86_64 -enable-kvm -name ubuntutest -m 2048 -hda ubuntutest.img -vnc ... 
- VSTS 执行git pull报错问题修复
			VSTS中进行双向同步配置的git pull指令如下: 运行时报错,Log如下图所示: 原因说的很清楚了,需要提前执行以下两条git config指令: git config --global use ... 
- 1.3 History of Android Plug-in Programing
			In July 27, 2012 , it was the first milestone in Android plug-in technology. Yimin Tu(mmin18 o ... 
- Java ActiveMQ 讲解(二)Spring ActiveMQ整合+注解消息监听
			对于ActiveMQ消息的发送,原声的api操作繁琐,而且如果不进行二次封装,打开关闭会话以及各种创建操作也是够够的了.那么,Spring提供了一个很方便的去收发消息的框架,spring jms.整合 ... 
- RabbitMQ进程结构分析与性能调优
			RabbitMQ是一个流行的开源消息队列系统,是AMQP(高级消息队列协议)标准的实现,由以高性能.健壮.可伸缩性出名的Erlang语言开发,并继承了这些优点.业界有较多项目使用RabbitMQ,包括 ... 
- SUSE12Sp3-.NET Core  2.2.1 runtime安装
			1.安装libicu依赖 1.在线安装 sudo mkdir /usr/local/dotnet #创建目录 cd /usr/local/dotnet sudo wget https://downlo ... 
- [Swift]LeetCode13. 罗马数字转整数 | Roman to Integer
			Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 ... 
- [Swift]LeetCode290. 单词模式 | Word Pattern
			Given a pattern and a string str, find if str follows the same pattern. Here follow means a full mat ... 
