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)
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
)