我有以下Flask应用程序的代码片段:
import flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
# Some code...
on_heroku = 'DYNO' in os.environ
if on_heroku:
# Do something
else:
# Do something
return ("SUCCESS", 200)
def open_browser():
on_heroku = 'DYNO' in os.environ
if on_heroku:
# Do something
else:
# Do something
if __name__ == "__main__":
open_browser()
app.run(debug=True)
我发现on_heroku = 'DYNO' in os.environ
和on_heroku
值的检查在代码中写了两次。
我如何改进代码(例如,将on_heroku
作为参数传递?),使程序仍然可以正常运行?
2条答案
按热度按时间yptwkmov1#
使其成为独立函数:
此外,您还可以在if语句中执行环境检查,而不是赋值。
甚至在运行时全局分配一次:
rkue9o1l2#
我的建议是使用一个配置类,全局导入配置,并根据需要使用它。如果您有一个较大的项目,请考虑使用库,有很多选项可供选择。(https://www.dynaconf.com/,pydantic-settings)
如果你正在使用pydantic,考虑使用https://pydantic-docs.helpmanual.io/usage/settings/,你也可以创建一个.env文件来轻松地进行本地开发,检查下面的例子。
您现在可以在应用程序中全局使用您的设置。