flask 介绍
# python 界的web框架
-Django:大而全,快速开发,公司内部项目
-Flask:小而精,不具备web开发好多功能,丰富的第三方插件
-FastApi:异步框架,主要为了做前后端分离接口
-Sanic:异步框架,只支持python3.6 及以上,性能比较高
-Tornado:公司用的比较少。。。
# Flask 框架
-pip3 install flask
fastapi
import time
from fastapi import FastAPI
app = FastAPI()
@app.get('/')
async def index():time.sleep(3)return {'code': 100, 'msg': '成功'}@app.get('/home')
async def home():time.sleep(2)return {'code': 100, 'msg': 'home'}@app.get('/order')
async def home():time.sleep(2)return {'code': 100, 'msg': 'order'}
flask
from flask import Flask
app = Flask(__name__)
@app.route('/', methods=['GET'])
def index():return 'hello world'
if __name__ == '__main__':app.run()
wsgiref
# 服务 wsgi协议的web服务器,django的web服务用的就是它
# 相当于个socket服务端,可以接收客户端发送过来的请求,处理,返回给客户端from wsgiref.simple_server import make_serverdef mya(environ, start_response):print(environ)start_response('200 OK', [('Content-Type', 'text/html')])if environ.get('PATH_INFO') == '/index':with open('index.html','rb') as f:data=f.read()elif environ.get('PATH_INFO') == '/login':with open('login.html', 'rb') as f:data = f.read()else:data=b'<h1>Hello, web!</h1>'return [data]if __name__ == '__main__':myserver = make_server('', 8011, mya)# 监听本地的8011端口,当请求来了,就会执行 mya(),传入两个参数,一个是environ:http请求转成python的字典,一个是start_response:响应对象print('监听8010')myserver.serve_forever()
Werkzeug
Werkzeug是一个WSGI工具包(在它基础上,继续封装),他可以作为一个Web框架的底层库。这里稍微说一下, werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西,例如 Request,Response 等等from werkzeug.wrappers import Request, Response@Request.application
def hello(request):return Response('Hello World!')if __name__ == '__main__':from werkzeug.serving import run_simplerun_simple('localhost', 4000, hello)