flask 配置文件

Posted darkchii

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask 配置文件相关的知识,希望对你有一定的参考价值。

  flask 文档对于配置文件有一定介绍,可能是英语不好的原因,自己总是有点模糊不清,配置文件到底该放在哪?如何编写?google了一些样例,并做了一些测试后,总算能用了。

  下面三种配置方法可以用于不同项目规模:

  基础项目结构:

hello ├── .gitignore
      ├── app.py
      ├── README.md
      └── setup.py

  一、最基础的配置方法

  app.py

from flask import Flask

app = Flask(__name__)
app.config[‘SECRET_KEY‘] = ‘a random string‘

@app.route(‘/‘)
def hello():
    return "Hello World!"

if __name__ == ‘__main__‘:
    app.run()

  shell:

set FLASK_APP=app.py
set FLASK_ENV=development  # 开发者模式,生产环境不要使用这种模式
set DEBUG = True
flask run

  (注:linux 上应使用 export 导入环境变量。详见:run-the-application

  然后可以在看到类似下面的输出:

Serving Flask app "app.py" (lazy loading)
Environment: development
Debug mode: on
Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

  但这种配置方式不利于版本控制,当项目提交到 git 或者其他项目管理应用上时,会暴露密钥等。

  二、从实例文件进行配置

  项目根目录添加实例文件夹:instance

  项目结构:

hello ├── .gitignore
      ├── app.py
      ├── instance
      ├── README.md
      └── setup.py

  再在实例文件中添加 `settings.cfg` (或者其他你喜欢的名字)文件,并编写如下:

ENV = ‘development‘
DEBUG = True
SECRET_KEY = ‘a random string‘

  然后,在 app.py 文件中:

from flask import Flask

app = Flask(__name__, instance_relative_config=True)
app.config.from_pyfile(‘settings.cfg‘)

@app.route(‘/‘)
def hello():
    return "Hello World!"

if __name__ == ‘__main__‘:
    app.run()

  设置 instance_relative_config 为 True,flask 就会默认在项目根目录寻找 instance 文件夹下的 `settings.cfg` 文件。

  也可以通过设置 `instance_path` 参数为绝对路径来任意放置自己的实例文件夹。

  详见:instance-folders

  然后,启动:

python app.py

  三、使用 django 风格的配置方法

  在项目根目录创建 `config.py` 文件,并编写如下:

import os
basedir = os.path.abspath(os.path.dirname(__file__))


class Config(object):
    DEBUG = False
    TESTING = False
    CSRF_ENABLED = True
    SECRET_KEY = ‘a random string‘


class ProductionConfig(Config):
    DEBUG = False


class StagingConfig(Config):
    ENV = ‘development‘
    DEBUG = True


class DevelopmentConfig(Config):
    ENV = ‘development‘
    DEBUG = True


class TestingConfig(Config):
    TESTING = True

  项目目录:

hello ├── .gitignore
      ├── app.py
      ├── config.py
      ├── README.md
      └── setup.py

  再在 `app.py` 文件中添加:

from flask import Flask

app = Flask(__name__, instance_relative_config=True)
app.config.from_object(‘config.DevelopmentConfig‘)

@app.route(‘/‘)
def hello():
    return "Hello World!"

if __name__ == ‘__main__‘:
    app.run()

  简述见:development-production

  启动:

python app.py

  以上就是我自己的 flask 项目的配置方法,正如文档所说:“没有一个绝对完美的配置方法”,还有一些其他方法,大家可以自己再探索更合适自己项目的方法:)

  最后

  参考:

    1.http://flask.pocoo.org/docs/1.0/config/

    2.https://realpython.com/flask-by-example-part-1-project-setup/

    3.https://qiita.com/nanakenashi/items/e272ff1aafb3889230bc

 

以上是关于flask 配置文件的主要内容,如果未能解决你的问题,请参考以下文章

flask学习:使用配置文件

Flask第六篇——项目配置文件

python Flask - 数据库片段

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置