wsgi是webserver和application的传话筒,起桥梁通信的作用。
# coding:utf-8
# 步骤:
# 搭建服务
# 监听动作 while循环,每隔几秒钟要去看看有没有请求发过来
# 处理程序
# 返回数据到套接字,生成一个响应对象
from wsgiref.simple_server import make_server
def app(env, make_reponse):
# env 获取相关数据——环境变量
# make_reponse(状态码:header)
make_reponse("200 ok", [('content-type', 'text/plain')])
return [b"hello,hanhanwang"] # b为byte类型
server = make_server("", 8000, app)
server.serve_forever()
# coding:utf-8
# 步骤:
# 搭建服务
# 监听动作 while循环,每隔几秒钟要去看看有没有请求发过来
# 处理程序
# 返回数据到套接字,生成一个响应对象
from wsgiref.simple_server import make_server
def index():
return "hello,I'm index!"
def register():
return "hello,please register!"
def login():
return "hello,please login!"
def app(env, start_resp):
# env 获取相关数据——环境变量
# start_resp(状态码:header)
if env.get("PATH_INFO") == "/":
start_resp("200 ok", [('content-type', 'text/plain')])
soresponse = index()
return [soresponse.encode()]
elif env.get("PATH_INFO") == "/register":
start_resp("200 ok", [('content-type', 'text/plain')])
soresponse = register()
return [soresponse.encode()]
elif env.get("PATH_INFO") == "/login":
start_resp("200 ok", [('content-type', 'text/plain')])
soresponse = login()
return [soresponse.encode()]
else:
start_resp("404 not found", [('content-type', 'text/plain')])
return [b"sorry!page not found!"] # b为byte类型
server = make_server("", 8001, app)
server.serve_forever()
如果出现很多的条件分支都是==,那就用字典去封装。(这样的优势:更灵活,修改添加起来很方便)
代码简化:
# coding:utf-8
# 步骤:
# 搭建服务
# 监听动作 while循环,每隔几秒钟要去看看有没有请求发过来
# 处理程序
# 返回数据到套接字,生成一个响应对象
from wsgiref.simple_server import make_server
def index():
return "hello,I'm index!"
def register():
return "hello,please register!"
def login():
return "hello,please login!"
# 这是一段路由 集中管理(有点像Django框架)
patterns = {
"/": index,
"/register": register,
"/login": login,
}
def app(env, start_resp):
# env 获取相关数据——环境变量
# start_resp(状态码:header)
url = env.get("PATH_INFO")
if (url is None) or (url not in patterns.keys()):
start_resp("404 not found", [('content-type', 'text/plain')])
return [b"sorry!page not found!"] # b为byte类型
start_resp("200 ok", [('content-type', 'text/plain')])
respon = patterns.get(url)
if respon is None:
start_resp("404 not found", [('content-type', 'text/plain')])
return [b"sorry!page not found!"] # b为byte类型
return [respon().encode()]
server = make_server("", 8001, app)
server.serve_forever()
# coding:utf-8
# 步骤:
# 搭建服务
# 监听动作 while循环,每隔几秒钟要去看看有没有请求发过来
# 处理程序
# 返回数据到套接字,生成一个响应对象
import json
from wsgiref.simple_server import make_server
def index(request):
return request
def register(request):
return request
def login(request):
return request
# 这是一段路由 集中管理(有点像Django框架)
patterns = {
"/": index,
"/register": register,
"/login": login,
}
def app(env, start_resp):
# app : flask核心对象
# env 获取相关数据——环境变量
# start_resp(状态码:header)
url = env.get("PATH_INFO")
params = env.get("QUERY_STRING")
if (url is None) or (url not in patterns.keys()):
# start_resp("404 not found", [('content-type', 'text/plain')])
# return [b"sorry!page not found!"] # b为byte类型
# start_resp("404 not found", [('content-type', 'text/html')]) #如果想返回html,就直接改成('content-type', 'text/html')
# return [b"sorry!page not found!
"] # b为byte类型
start_resp("404 not found", [('content-type', 'application/json')])
result = json.dumps({
"msg": "page is not found"})
return [result.encode()]
start_resp("200 ok", [('content-type', 'text/plain')])
respon = patterns.get(url)
if respon is None:
start_resp("404 not found", [('content-type', 'text/plain')])
return [b"sorry!page not found!"] # b为byte类型
return [respon(params).encode()]
server = make_server("", 8002, app)
server.serve_forever()
都说用了django(相比flask来说更具效率),都不会喜欢flask了,但老师说,我们学习flask就是为了采坑及对web框架有更深入的认识,当我们在django中遇到问题,处理起来也会比较容易一点。
pip install flask
接下来就会详细记录flask框架实战重点,后面继续更博!
我还是个flask小白,如果大佬看到,希望可以提上您宝贵的建议,感激不尽!
https://blog.csdn.net/hanhanwanghaha欢迎关注这个超级无敌可爱的人鸭,有什么问题留言私信皆可,看见必回!
创作不易,如有转载,请注明出处