新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
fastapi-創(chuàng)新互聯(lián)
文章目錄
在之前的代碼中,像數(shù)據(jù)庫連接信息等敏感信息,都直接寫在代碼中,這種方式是不安全的。本篇文章記錄兩種FastAPI中隱藏配置信息的方法。創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、綏德網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、購物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為綏德等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。方式1:隱藏在環(huán)境變量中
本文題目:fastapi-創(chuàng)新互聯(lián)
文章源于:http://www.ef60e0e.cn/article/ccdeed.html
- 方式1:隱藏在環(huán)境變量中
- 配置環(huán)境變量
- Windows中配置環(huán)境變量
- Linux中配置環(huán)境變量
- 在代碼中獲取環(huán)境變量
- 方式2:隱藏在配置文件中
- 裝包
- 在代碼中獲取配置文件內(nèi)容
在之前的代碼中,像數(shù)據(jù)庫連接信息等敏感信息,都直接寫在代碼中,這種方式是不安全的。本篇文章記錄兩種FastAPI中隱藏配置信息的方法。創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、綏德網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、購物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為綏德等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。方式1:隱藏在環(huán)境變量中
在電腦的環(huán)境變量中配置需要隱藏的配置信息。
配置環(huán)境變量 Windows中配置環(huán)境變量export DBURL="mysql+pymysql://root:123456@127.0.0.1:3306/testdb"
在代碼中獲取環(huán)境變量import os
def get_dburl_from_env(key):
'''
獲取系統(tǒng)環(huán)境變量中名為key的變量值,
當(dāng)不存在時(shí)返回None
:param key:為變量名
:return :key對(duì)應(yīng)的value,不存在時(shí)返回None
'''
value = os.getenv(key,None)
return value
class NoValueException(Exception):
pass
if __name__ == "__main__":
db_url = get_dburl_from_env("DBURL")
if db_url is None:
raise NoValueException
print(db_url)
test_url = get_dburl_from_env("TEST")
if test_url is None:
raise NoValueException
print(test_url)
將配置信息存放在配置文件中,通過讀取配置文件獲取配置信息。
例如:
安裝python-dotenv
包。
pip install python-dotenv
在代碼中獲取配置文件內(nèi)容'''
方法2:
將隱私內(nèi)容存放在本地配置文件中,通過讀取配置文件獲取隱私配置文件
'''
from functools import lru_cache
from pydantic import BaseSettings
from fastapi import FastAPI,Depends
class Settings(BaseSettings):
# 類似BaseModel一樣,配置各個(gè)配置項(xiàng)的內(nèi)容限制和數(shù)據(jù)類型
dburl:str
class Config:
# env_file配置文件的路徑
env_file = "./No23_配置/config/.env"
app = FastAPI()
@lru_cache
def get_settings():
# 緩存配置項(xiàng),避免頻繁讀取配置文件
return Settings()
@app.get("/")
def get_home(settings:Settings=Depends(get_settings)):
return {"db_url":settings.dburl
}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app="main-file:app",host="127.0.0.1",port=8080,reload=True)
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:fastapi-創(chuàng)新互聯(lián)
文章源于:http://www.ef60e0e.cn/article/ccdeed.html