flask

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_server

def 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_simple
    run_simple('localhost', 4000, hello)
相关推荐
晨非辰23 分钟前
Linux权限管理速成:umask掩码/file透视/粘滞位防护15分钟精通,掌握权限减法与安全协作模型
linux·运维·服务器·c++·人工智能·后端
Hgfdsaqwr7 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
开发者小天7 小时前
python中For Loop的用法
java·服务器·python
老百姓懂点AI8 小时前
[RAG实战] 向量数据库选型与优化:智能体来了(西南总部)AI agent指挥官的长短期记忆架构设计
python
喵手10 小时前
Python爬虫零基础入门【第九章:实战项目教学·第15节】搜索页采集:关键词队列 + 结果去重 + 反爬友好策略!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·搜索页采集·关键词队列
Suchadar10 小时前
if判断语句——Python
开发语言·python
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大10 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
喵手11 小时前
Python爬虫零基础入门【第九章:实战项目教学·第14节】表格型页面采集:多列、多行、跨页(通用表格解析)!
爬虫·python·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·表格型页面采集·通用表格解析
毕设源码-钟学长11 小时前
【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
0思必得011 小时前
[Web自动化] 爬虫之API请求
前端·爬虫·python·selenium·自动化