[英]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.