【问题标题】:Is there a way to config flask app port in config file?有没有办法在配置文件中配置烧瓶应用程序端口?
【发布时间】:2020-02-29 19:43:27
【问题描述】:

我正在学习 Python Flask,并且正在编写一个带有 cmets 部分、登录和创建用户部分的简单 Web 应用程序。几节课后我被困住了。我创建了一个 config.py 文件来在其中添加所有应用程序配置,例如 ENV 名称、DEBUG、SECRET_KEY,但我没有找到任何方法来在此文件中设置端口号。我在配置类 PORT = 8000 中写入,但我的应用程序无法识别这一点,我必须在 run.py 文件“app.run(port = 8000)”中进行设置。

你有什么想法吗?谢谢:)

Config.py:

import os

class Config(object):
    SECRET_KEY = 'secretkeyforsessions'

class DevelopmentConfig(Config):
    #PORT = 8000
    #port = 8000
    ENV = "development"
    DEBUG = True
    SQLAlCHEMY_DATABASE_URI = "mysql://root:root@localhost/flask"
    SQLALCHEMY_TRACK_MODIFICATIONS = False

运行.py:

if __name__ == '__main__': 
    csrf.init_app(app)
    """
    db.init_app(app)
    with app.app_context():
        db.create_all() # Se encarga de crear todas las tablas que no sean creadas
    """
    app.run(port = 8000)

【问题讨论】:

  • app.run(port = DevelopmentConfig.port) ?
  • 有效!!!谢谢!我有很多东西要学...

标签: python flask config


【解决方案1】:

Flask 提供app.config.from_object('...a config file') https://flask.palletsprojects.com/en/1.1.x/config/#configuring-from-files

# config.py
ENV = "development"
PORT = "8000"
DEBUG = True

SECRET_KEY = 'secretkeyforsessions'

SQLAlCHEMY_DATABASE_URI = "mysql://root:root@localhost/flask"
SQLALCHEMY_TRACK_MODIFICATIONS = False

# run.py
# ...
import config

app.config.from_object(config)
print(app.config)

app.run(port=config.PORT)

# ...

【讨论】:

  • 感谢您的回复。我现在明白它是如何工作的。我有很多东西要学,Python 和 Flask 是我开始新的编程世界的一种方式。再见!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 2022-06-16
  • 2020-03-26
相关资源
最近更新 更多