如何将 `.env` 文件传递给 FastAPI 应用(带命令行详解)
2024-03-14 18:06:52
如何通过命令行将 .env
文件传递给 FastAPI 应用
简介
在软件开发中,.env
文件是管理敏感信息(如 API 密钥和数据库凭证)的常用做法。为了保护这些信息免受未经授权的访问,使用 .env
文件是至关重要的。FastAPI 是一种流行的 Python Web 框架,它提供了多种功能来帮助管理 .env
文件,包括通过命令行传递的能力。
使用命令行传递 .env
文件
要通过命令行将 .env
文件传递给 FastAPI 应用,可以使用 --env-file
标志。此标志允许你指定包含环境变量的 .env
文件的路径。例如,要传递名为 config.env
的文件,可以使用以下命令:
python -m uvicorn main:app --reload --env config.env
使用 --env-file
标志后,FastAPI 将从指定的 .env
文件中加载环境变量。这些环境变量然后可以像任何其他环境变量一样在你的 FastAPI 应用中使用。
其他管理 .env
文件的方法
除了 --env-file
标志,FastAPI 还提供其他方法来管理 .env
文件。你还可以使用 dotenv
包,它是一个用于加载和管理 .env
文件的第三方库。
示例代码
以下代码示例演示了如何使用 --env-file
标志将 .env
文件传递给 FastAPI 应用:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello, world!"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000, env_file="config.env")
在上面的示例中,我们使用 uvicorn.run()
函数来运行我们的 FastAPI 应用。我们还提供了 env_file="config.env"
参数,它告诉 uvicorn 从名为 config.env
的 .env
文件中加载环境变量。
结论
通过命令行传递 .env
文件是管理敏感信息的一种简单而有效的方法。FastAPI 提供了多种功能来帮助你完成此任务,包括 --env-file
标志。通过利用这些功能,你可以轻松地在你的 FastAPI 应用中使用 .env
文件。
常见问题解答
-
什么是
.env
文件?
它是一个包含敏感信息(如 API 密钥和数据库凭证)的文件。它通常不保存在版本控制中以保护这些信息。 -
为什么应该使用
.env
文件?
它有助于保护敏感信息免受未经授权的访问,并使不同环境(如开发和生产)之间的配置变得容易。 -
如何创建
.env
文件?
创建一个名为.env
的文本文件,并在其中添加你的环境变量,格式为:变量名=变量值
。 -
FastAPI 中如何使用
.env
文件?
你可以使用--env-file
标志通过命令行传递.env
文件。另外,你还可以使用dotenv
包来加载和管理.env
文件。 -
在哪些情况下使用
.env
文件有好处?
当你想在不同环境之间共享配置、保护敏感信息或使配置管理自动化时,使用.env
文件非常有用。