• 【flask】环境配置-python-dotenv的使用


    【自动发现程序实例】

    一般来说,在执行flask run命令运行程序前,我们需要提供程序实例所在模块的位置 。

    Flask会自动探测程序实例,自动探测存在下面这些规则:

    • 从当前目录寻找app.py和wsgi.py模块,并从中寻找名为app或application的程序实例
    • 从环境变量FLASK_APP对应的值寻找名为app或application的程序实例

    如果你程序主模块命名为app.py,flask run命令会自动在其中寻找程序实例。如果你的程序主模块名是其他名称,

    比如hello.py,那么需要设置环境变量FLASK_APP,将包含程序实例的模块名赋值给这个变量。

    在linux 或 macOS系统使用export命令:

    export FLASK_APP=hello

     【管理环境变量】

    Flask的自动发现程序实例机制还有第三条规则:如果安装了python-dotenv,那么在使用flask run或其它命令时

    会使用它自动从.flaskenv文件和.env文件中加载环境变量。

    当安装了python-dotenv时,Flask在加载环境变量的优先级是:手动设置的环境变量>.env中设置的环境变>.flaskenv设置的环境变量。

     

    除了FLASK_APP,我们还需要使用到其他环境变量。环境变量在新创建命令行窗口或重启电脑后就清除了,每次都要重设

    变量有些麻烦。而且如果你同时开发多个Flask程序,这个FLASK_APP就需要在不同的值之间切换。为了避免频繁设置环境变量,

    我们可以使用python-dotenv管理项目的环境变量,首先使用pipenv将它安装到虚拟环境:

    pipenv install python-dotenv

    我们在项目根目录下分别创建两个文件:.env和.flaskenv。.flaskenv用来存储和Flask相关的公开环境变量,比如FLASK_APP;

    而.env用来存储包含敏感信息的环境变量,比如配置Email服务器的账户名与密码。

    在.env和.flaskenv文件中,环境变量使用键值对的形式定义,每行一个,以#开头的为注释,如下所示:

    SOME_VAR=1
    #这是注释
    FOO="BAR"

    【注意!】一定是要在运行flask项目的情况下.env 和.flaskenv中的环境变量才会被Flask加载

      【代码示例】 

    .flaskenv中的配置如下:

    TEST_ENV=test python-dotenv

    app.py

    from flask import Flask
    app =Flask(__name__)
    
    import os
    a=os.getenv('TEST_ENV')
    print(a)

    app.run()
    从下面的结果可以看出:
    如果不在.flaskenv中配置有关flask的环境变量,运行flask后,

    即使.flaskenv中有其它变量如,TEST_ENV,也不能获取到它的值

    
    

    .flaskenv文件中增加环境变量FLASK_ENV='development'再次运行app.py

    这次.flaskenv中的环境变量都被Flask加载到了,与Flask环境无关的变量TEST_ENV的值也能被获取取了

    TEST_ENV=test python-dotenv
    FLASK_ENV='development'

     

    另:如果不使用python-dotenv来管理配置变量,其实也可以使用.ini这样的配置文件来存储配置信息。

    用法:【python3】configparser读取ini配置文件

  • 相关阅读:
    AxWindowsMediaPlayer的详细用法
    C# Windows Media Player控件的常用属性及方法
    C#中winform使用相对路径读取文件的方法
    DataGridView控件在加载数据时产生的闪烁问题
    浅谈C#中的双缓冲
    几种C#实现播放声音的方法
    C#下实现软件欢迎界面
    DataGridView控件内建立日期选择编辑列
    程序员值得看的电影(20170420EDIT)
    员工照片
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11776627.html
Copyright © 2020-2023  润新知