Flask - 尝试配置应用时出错

时间:2018-01-21 13:56:38

标签: python flask

我有以下目录结构:

app.py
config
    __init__.py
    settings.py
instance
    __init__.py
    settings.py

app.py看起来像这样:

app = Flask(__name__)

debug_toolbar = DebugToolbarExtension()
mail = Mail()
csrf = CsrfProtect()

app.config.from_object('config.settings')
app.config.from_pyfile('settings.py', silent=True)

@app.route('/')
def hello_world():
    return "hey"

debug_toolbar.init_app(app)
mail.init_app(app)
csrf.init_app(app)

app.run(port=8000)

,两个文件夹中的settings.py文件如下所示:

DEBUG = False

SERVER_NAME = 'localhost:8000'
SECRET_KEY = 'insecurekeyfordev'

# Flask-Mail.
MAIL_DEFAULT_SENDER = 'contact@local.host'
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 587
MAIL_USE_TLS = True
MAIL_USE_SSL = False
MAIL_USERNAME = 'you@gmail.com'
MAIL_PASSWORD = 'awesomepassword'

# Celery.
CELERY_BROKER_URL = 'redis://:devpassword@redis:6379/0'
CELERY_RESULT_BACKEND = 'redis://:devpassword@redis:6379/0'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_REDIS_MAX_CONNECTIONS = 5

如果我删除负责配置的app.py中的2行,我的应用运行正常,当我尝试访问hey时,我得到127.0.0.1:8000

如果我将这些行保留在文件中,当我尝试访问该地址时会出现404错误。

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

您将include __DIR__ . "/../somefilein_parent.php";设置为SERVER_NAME,但实际上是通过localhost:8000尝试访问它。

因此请注释掉配置中的127.0.0.1变量。