首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法配置Starlette .env文件

无法配置Starlette .env文件
EN

Stack Overflow用户
提问于 2020-12-10 04:53:55
回答 3查看 2.8K关注 0票数 3

我正在尝试为我的项目设置.env文件。但这似乎不正确。

我将.env文件存储在与config.py文件相同的文件夹中,如下所示。

代码语言:javascript
复制
|__run.py
|___|myproject
    |__config.py
    |__.env

config.py文件中的代码:

代码语言:javascript
复制
from starlette.config import Config
from starlette.datastructures import Secret, CommaSeparatedStrings
config = Config(".env")
BACKHUG_JWT_AES_KEY = config('BACKHUG_JWT_AES_KEY', default=None)

print(type(BACKHUG_JWT_AES_KEY))
print(BACKHUG_JWT_AES_KEY)

.env文件中的数据:

代码语言:javascript
复制
BACKHUG_JWT_AES_KEY="SAMPLE_AES_KEY"

但我得到的结果是

代码语言:javascript
复制
<class 'NoneType'>
None

我不知道它为什么不反对。我怎么才能修好它?

我从一个run.py文件中运行我的项目。

run.py文件中的代码:

代码语言:javascript
复制
import uvicorn

if __name__ == "__main__":
    uvicorn.run("myproject.main:app", host="0.0.0.0", port=8888, reload=True)
EN

回答 3

Stack Overflow用户

发布于 2020-12-10 08:11:32

还有更好的办法!

为此使用FastAPIPydantic。Pydantic提供了一个很棒的BaseSettings类。此外,我们有很好的设置和环境变量文档。

通过继承PydanticBaseSettings创建一个BaseSettings

代码语言:javascript
复制
from pydantic import BaseSettings

class Settings(BaseSettings):
    backhug_jwt_access_key: str

    class Config:
        env_file = "myproject/.env"

此设置类会自动从.env文件中读取变量。然后,从您的主文件中可以这样使用它:

代码语言:javascript
复制
from . import config
from functools import lru_cache

from fastapi import Depends, FastAPI

app = FastAPI()

@lru_cache()
def get_settings():
    return config.Settings()


@app.get("/info")
async def info(settings: config.Settings = Depends(get_settings)):
    return {"jwt_key": settings.backhug_jwt_access_key}
票数 1
EN

Stack Overflow用户

发布于 2020-12-10 04:54:59

删除值中的双引号,然后重试:

环境档案:

代码语言:javascript
复制
BACKHUG_JWT_AES_KEY=SAMPLE_AES_KEY
票数 0
EN

Stack Overflow用户

发布于 2020-12-10 07:34:02

我很确定这是当前工作目录的一个问题。我可以建议两种方法。

  • .env文件与run.py文件一起移动到一个目录

  • 更改路径config = Config("myproject/.env")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65228696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档