2. wsgiref库简介 wsgiref是python内置库,实现了一个简单的WSGI Server和WSGI Application,使用该库我们将很容易实现自定义的web架构而不用考虑TCP/...HTTP层协议,库源码位于/django/lib/wsgiref文件夹,该库提供了5个模块: * util -- Miscellaneous useful functions and wrappers...app and a server to detect errors in either 下面主要对simple_server模块的重点函数和使用方法进行说明 3. wsgiref.simple_server...login(request): model = Model() return render('web.html', **{'model':model}) (4)main.py from wsgiref.simple_server
hello world %s"% (environ["PATH_INFO"][1:] or "web") return [ body.encode()] # 【服务器】 from wsgiref.simple_server
Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref...self.finish_response() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref...write self.send_headers() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref..._write(bytes(self.headers)) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref...self.finish_response() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/wsgiref
29/May/2019 16:08:29] "GET / HTTP/1.1" 200 0 Traceback (most recent call last): File "D:\Python\lib\wsgiref...\handlers.py", line 138, in run self.finish_response() File "D:\Python\lib\wsgiref\handlers.py", line...181, in finish_response self.write(data) File "D:\Python\lib\wsgiref\handlers.py", line 267, in write
而Python标准库提供的独立WSGI服务器叫wsgiref,Django开发环境用的就是这个模块来做服务器。...从这继续... 1、wsgiref 我们利用wsgiref模块来替换我们自己写的web框架的socket server部分: """ 根据URL中不同的路径返回不同的内容--函数进阶版 返回HTML页面...让网页动态起来 wsgiref模块版 """ import time from wsgiref.simple_server import make_server # 将返回不同的内容部分封装成函数 def...{{hobby}} {% endfor %} 使用jinja2渲染index2.html文件: from wsgiref.simple_server
1.2 客户请求流程 关键三处:environ是简单封装的请求报文的字典start_response解决响应报文头的函数app函数返回响应报文正文,简单理解就是HTML二、WSGI服务器实现-wsgiref2.1...实现简单WSGI HTTP服务端wsgiref是Python提供的一个WSGI参考实现库,不适合生产环境使用。...wsgiref.simple_server模块实现一个简单的WSGI HTTP服务器。...from wsgiref.simple_server import make_server, demo_appip = '127.0.0.1'port = 8080server = make_server...from wsgiref.simple_server import make_serverdef application(environ, start_response): status = '
运行WEB服务器 将上面的代码保存为app.py后,编写server.py 在Python中有内置的WEB服务器,在wsgiref模块中 # 从wsgiref模块导入make_server from...wsgiref.simple_server import make_server # 导入自己写的http处理函数 from app import application # 创建web服务 参数分别对应
# 从wsgiref模块导入: from wsgiref.simple_server import make_server # 导入我们自己编写的application函数: from hello import
wsgiref wsgiref模块是python官方库针对wsgi协议的一个参考实现,虽然与工业界标准或有差距,但用来学习基本够用。同时该模块实现了一个简单的wsgi协议的HTTP服务器。...from wsgiref.simple_server import make_server .........这段代码比较简单,调用了wsgiref.simple_server的make_server函数构造了一个HTTP Server的对象(明显是个工厂模式)。...虽然前面说wsgiref基本够用,但是有个问题,就是不支持HTTPS啊。要弄个支持HTTPS的Web Server,就要用到一些第三方的组件了。...我们需要聚焦的是,虽然使用了一个第三方库,启动server的代码与wsgiref模块不太相同,但是我们之前编写的application回调函数可以直接在这里使用。
0333/ WSGI是一套接口标准协议/规范; 通信(作用)区间是Web服务器和Python Web应用程序之间; 目的是制定标准,以保证不同Web服务器可以和不同的Python程序之间相互通信 from wsgiref.simple_server...访问 拓展1(面向过程) from wsgiref.simple_server import make_server def app(env, start_response): # env...: day0_1.py @Time : 2020/6/13 9:40 上午 @Author : zhongxin @Email : 490336534@qq.com """ from wsgiref.simple_server...: day0_1.py @Time : 2020/6/13 9:40 上午 @Author : zhongxin @Email : 490336534@qq.com """ from wsgiref.simple_server
目录 自创Web框架之过度Django框架 软件开发架构 HTTP协议 Web框架之“撸起袖子加油干” Web框架之通过wsgiref加油干 封装优化处理 动静网页 jinjia2模块 数据库 自写框架梳理...模块 Web框架之通过wsgiref加油干 # 解决了上述两个问题 from wsgiref.simple_server import make_server def run(request,response...param env:请求相关的所有数据 :param response:响应相关的所有数据 :return:返回给浏览器的数据 ''' # print(env) # wsgiref...param env:请求相关的所有数据 :param response:响应相关的所有数据 :return:返回给浏览器的数据 ''' # print(env) # wsgiref...param env:请求相关的所有数据 :param response:响应相关的所有数据 :return:返回给浏览器的数据 ''' # print(env) # wsgiref
把mvc或mtv框架的model数据库,view:html,control逻辑处理,url判别,wsgiref集中在一个文件 代码如下 1 #!.../usr/bin/env python 2 #-*- coding:utf-8 -*- 3 4 from wsgiref.simple_server import make_server 5
-----------------------------Do a web framework ourselves--------------------------- from wsgiref.simple_server...Python内置了一个WSGI服务器,这个模块叫wsgiref application()函数就是符合WSGI标准的一个HTTP处理函数,它接收两个参数:...path=="/alex": return [data2] else: return ["404".encode('utf8')] from wsgiref.simple_server...') # 开始监听HTTP请求: httpd.serve_forever() from wsgiref.simple_server import make_server def f1(req):
最简单的WSGI server为Python自带的wsgiref.simple_server。...代码 from wsgiref.simple_server import make_server server = make_server('localhost', 8080, application)...application之间,关于中间件的部分代码参考: An Introduction to the Python Web Server Gateway Interface (WSGI) 代码如下 from wsgiref.simple_server
python bottle 简介 目录 正文 bottle 是一个轻量级的python web框架, 可以适配各种web服务器,包括python自带的wsgiref(默认),gevent, cherrypy...输出中加粗部分表明使用的web服务器是python自带的wsgiref。也可以使用其他web server,比如gevent,前提是需要安装gevent,修改后的代码如下: ?...Run as CGI script flup flup Run as FastCGI process gae gae Helper for Google App Engine deployments wsgiref...wsgiref Single-threaded default server cherrypy cherrypy Multi-threaded and very stable paste paste
get方法 代码实现 # coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_server import...post方法 代码实现 # coding:utf-8 import json from wsgiref.simple_server import make_server # 定义函数,参数是函数的两个参数
main httpd = make_server('127.0.0.1', PORT, application) File "D:\Program Files\Python34\lib\wsgiref...socketserver.py", line 430, in __init__ self.server_bind() File "D:\Program Files\Python34\lib\wsgiref
目录 自己动手实现一个简易版本的web框架 手撸一个web服务端 根据请求 url 做不同的响应处理 基于wsgiref模块实现服务端 用wsgiref 模块的做的两件事 拆分服务端代码 支持新的请求地址...404页面也应该算作设计网站的一部分,可以给人不一样的感觉 基于wsgiref模块实现服务端 前面处理 scoket 和 http 的那堆代码通常是不变的,且与业务逻辑没什么关系,如果每个项目都要写一遍...那封装成模块嘛~ 不过这个操作已经有人帮我们做了,并且封装的更加强大,就是 wsgiref 模块 用wsgiref 模块的做的两件事 在请求来的时候,自动解析 HTTP 数据,并打包成一个字典,便于对请求发过来的数据进行操作...return [res.encode('utf-8')] # 注意这里返回的是一个列表(可迭代对象才行),wsgiref 模块规定的,可能还有其他的用途吧 if __name__ == '__main...模块 B:自带路由与视图函数文件 C:自带一套模板语法 Flask A:用的别人的werkzeug 模块(基于 wsgiref 封装的) B:自带路由与视图函数文件 C:用的别人的jinja2
而Python标准库提供的独立WSGI服务器叫wsgiref,Django开发环境用的就是这个模块来做服务器。...from wsgiref.simple_server import make_server def run_server(environ, start_response): start_response...from wsgiref.simple_server import make_server def index(): return [bytes("这是index页面",...from wsgiref.simple_server import make_server def index(): with open("index.html", "rb") as f:...from wsgiref.simple_server import make_server def index(): with open("index.html", "rb") as f:
领取专属 10元无门槛券
手把手带您无忧上云