运行Flask=开启一个服务
全称Python Web Server Gateway Interface,指定了web服务器和Python web应用或web框架之间的标准接口,以提高web应用在一系列web服务器间的移植性。具体可查看 官方文档:https://www.python.org/dev/peps/pep-0333/
from wsgiref.simple_server import make_server
def app(env, start_response):
# env 获取请求相关数据
# start_response
start_response('200 OK',[('content-type','text/plain'),])
return [b"hello"]
server = make_server("", 6001, app)
server.serve_forever() # poll_interval轮询时间
访问
from wsgiref.simple_server import make_server
def app(env, start_response):
# env 获取请求相关数据
# start_response
url = env['PATH_INFO']
if url == '/hi':
start_response('200 OK', [('content-type', 'text/plain'), ])
return [b"hello"]
elif url == '/':
start_response('200 OK', [('content-type', 'text/plain'), ])
return [b"welcom"]
else:
start_response('404 not fount', [('content-type', 'text/plain'), ])
return [b"not fount"]
server = make_server("", 6001, app)
server.serve_forever() # poll_interval轮询时间
这样可以访问
/hi
/
# -*- encoding: utf-8 -*-
"""
@File : day0_1.py
@Time : 2020/6/13 9:40 上午
@Author : zhongxin
@Email : 490336534@qq.com
"""
from wsgiref.simple_server import make_server
def home():
return 'welcome'
def hi():
return 'hi'
router = {
"/": home,
'hi': hi
}
def app(env, start_response):
url = env.get("PATH_INFO")
resp = router.get(url)
if url is None or resp is None:
start_response('404 not fount', [('content-type', 'text/plain'), ])
return [b"not fount"]
else:
start_response('200 OK', [('content-type', 'text/plain'), ])
return [resp().encode()]
server = make_server("", 6001, app)
server.serve_forever() # poll_interval轮询时间
# -*- encoding: utf-8 -*-
"""
@File : day0_1.py
@Time : 2020/6/13 9:40 上午
@Author : zhongxin
@Email : 490336534@qq.com
"""
from wsgiref.simple_server import make_server
class Route:
def __init__(self):
self.url = {}
def route(self, path):
def decorator(func):
self.url[path] = func
func()
return decorator
def __call__(self, env, start_response):
path = env["PATH_INFO"]
if path in self.url:
status = '200 OK'
response_header = [('content-type', 'text/html')]
start_response(status, response_header)
return self.url[path]()
else:
status = '404 Not Found'
response_header = [('content-type', 'text/html')]
start_response(status, response_header)
return [b"404 not found"]
app = Route()
@app.route('/')
def index():
yield b'welcome'
@app.route('/hi')
def hi():
yield b'hello'
server = make_server("", 6001, app)
server.serve_forever() # poll_interval轮询时间
一本函数式编程
的书:《The Little Schemer》