簡體   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