FastAPI跨域配置
FastAPI跨域配置
from fastapi import FastAPI
import uvicorn
from fastapi.middleware.cors import CORSMiddleware #解决跨域问题
import os
import redis
from fastapi import BackgroundTasks, FastAPI
from bili_main import xmain
app = FastAPI() # 创建API实例
app.add_middleware(
CORSMiddleware,
# 允许跨域的源列表,例如 ["http://www.example.org"] 等等,["*"] 表示允许任何源
allow_origins=["*"],
# 跨域请求是否支持 cookie,默认是 False,如果为 True,allow_origins 必须为具体的源,不可以是 ["*"]
allow_credentials=False,
# 允许跨域请求的 HTTP 方法列表,默认是 ["GET"]
allow_methods=["*"],
# 允许跨域请求的 HTTP 请求头列表,默认是 [],可以使用 ["*"] 表示允许所有的请求头
# 当然 Accept、Accept-Language、Content-Language 以及 Content-Type 总之被允许的
allow_headers=["*"],
# 可以被浏览器访问的响应头, 默认是 [],一般很少指定
# expose_headers=["*"]
# 设定浏览器缓存 CORS 响应的最长时间,单位是秒。默认为 600,一般也很少指定
# max_age=1000
)
r = redis.StrictRedis(host="localhost", port=6379, db=0)
def run(name,cookies):
xmain(name,cookies)
@app.post("/start_bilibili")
async def root(name: str, cookies: str, background_tasks: BackgroundTasks):
# return input_name
# r.set('input_name',str(input_name))
background_tasks.add_task(run, name, cookies)
return "start"
# return r.mget('KEYWORD_LIST','START_DATE','END_DATE')
@app.post("/bilibili/status")
async def root(input_name:str):
return input_name
#return r.mget("is_ok", "KEYWORD_LIST", "START_DATE", "END_DATE")
#return r.mget("is_done","input_name")
# 在最下面加上 这一句
if __name__ == "__main__":
uvicorn.run(app='bili_api_text:app', host="0.0.0.0", port=8050, reload=True, debug=True)
- 核心就是引入CORSMiddleware的包
app = FastAPI() # 创建API实例
app.add_middleware(
CORSMiddleware,
# 允许跨域的源列表,例如 ["http://www.example.org"] 等等,["*"] 表示允许任何源
allow_origins=["*"],
# 跨域请求是否支持 cookie,默认是 False,如果为 True,allow_origins 必须为具体的源,不可以是 ["*"]
allow_credentials=False,
# 允许跨域请求的 HTTP 方法列表,默认是 ["GET"]
allow_methods=["*"],
# 允许跨域请求的 HTTP 请求头列表,默认是 [],可以使用 ["*"] 表示允许所有的请求头
# 当然 Accept、Accept-Language、Content-Language 以及 Content-Type 总之被允许的
allow_headers=["*"],
# 可以被浏览器访问的响应头, 默认是 [],一般很少指定
# expose_headers=["*"]
# 设定浏览器缓存 CORS 响应的最长时间,单位是秒。默认为 600,一般也很少指定
# max_age=1000
)
脚踏实地,注重基础。