繁体   English   中英

运行Flask应用程序时找不到404 Not

[英]Get 404 Not Found when running Flask app

我想在Apache上设置Flask。 我成功测试了我的Apache配置,但我无法使用以下Flask应用程序运行它。 因此,我没有将此问题发布到服务器故障,而是发布到Stack Overflow。

调用http://54.68.62.180会引发以下错误:

未找到

在服务器上找不到请求的URL。 如果您手动输入了URL,请检查拼写,然后重试。

对于记录,我的Apache配置AppName.conf文件如下所示:

<VirtualHost *:80>
               ServerName 54.68.62.180
               WSGIDaemonProcess AppName threads=5
               WSGIScriptAlias / /var/www/AppName/appname.wsgi
               <Directory /var/www/AppName>
                       WSGIProcessGroup AppName
                       WSGIApplicationGroup %{GLOBAL}
                       Order allow,deny
                       Allow from all
               </Directory>
               ErrorLog ${APACHE_LOG_DIR}/error.log
               LogLevel info
               CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我的appname.wsgi看起来像这样:

#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/AppName")

from appname import application
application.secret_key = 'my_key'

在我的Flask应用程序中, application.py文件如下所示:

from appname import application
from appname.socket_interface import socketio

if __name__ == '__main__':
    socketio.run(application)
    #application.run()

我试过两个,socketio.run(应用程序)和application.run(),在这两种情况下我都得到了错误。 其他一些帖子,如Flask教程 - 404 Not Found似乎暗示应用程序是“在任何路由注册之前执行的”但我的application.run()已经在文件的底部。

路由在appname / appname / init .py中指定:

application.register_blueprint(frontend, url_prefix='/app')

并在

appname/appname/frontend/__init__.py

html源通过以下方式路由:

@frontend.route('/')
def frontend_test():
    return frontend.send_static_file('index.html')

我在这里做错了什么,为什么我会收到404错误?

假设您发布的application.py脚本没有编辑,那么您将错过实际路由。 在请求基本URL时(在您的情况下为http://54.68.62.180 ),Flask根本不知道要提供什么,因此404.将以下内容添加到您的application.py文件中:

@app.route('/')
def hello_world():
    return 'hello world!'

请参阅快速入门指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM