小编roo*_*kie的帖子

fastApi 中的 python 全局变量无法正常工作

我有一个简单的 fastApi 演示应用程序,它实现了一个功能:通过调用一个名为 changeResponse 的 post api 来获取不同的响应 json。changeResponse api 只是更改了一个全局变量,另一个 api 通过同一个全局变量返回了不同的响应。在本地环境中,它工作正常,但是当我在 docker 上构建它时,我只调用 changeResponse 一次后响应总是改变。代码如下如下:

from typing import Optional
from fastapi import FastAPI
from util import read_json
import enum

app = FastAPI()

type = "00"
    
@app.post("/changeResponse")
async def handle_change_download_response(param:Optional[str]):
        global type
        type = param
        print("type is "+type)
        return {"success":"true"}

@app.post("/download")
async def handle_download(param:Optional[str]):
    print("get download param: "+param)
    if legalDownload(param):
        print("type is "+type)
        return read_json.readDownloadSuccessRes(type)
    else:
        return read_json.readDownloadFailRes()

def legalDownload(data:str)->bool:
    return True
Run Code Online (Sandbox Code Playgroud)

dockerfile 如下:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7

COPY ./app /app …
Run Code Online (Sandbox Code Playgroud)

python python-3.x docker fastapi uvicorn

6
推荐指数
2
解决办法
3818
查看次数

标签 统计

docker ×1

fastapi ×1

python ×1

python-3.x ×1

uvicorn ×1