Fork me on GitHub

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
)
posted @ 2023-06-07 10:01  壶小旭  阅读(1145)  评论(0编辑  收藏  举报