【问题标题】:Flask application showing 404Flask 应用程序显示 404
【发布时间】:2021-03-02 11:19:17
【问题描述】:

我是 Python 和 Flask 的新手,我需要在代码库上工作。我在名为migration的目录中有以下文件

Name

app
env
__pycache__
requirements.txt
run.py

run.py,我有如下代码:

from app import app

app.run(debug=True)

app 目录中,我有一个__init__.py,代码如下:

from app.helpers import get_page_display_name, get_page_url_name
# from app import views
from flask import Flask

app = Flask(__name__)

app.config['JSON_SORT_KEYS'] = False
app.jinja_env.globals.update(get_page_display_name=get_page_display_name)
app.jinja_env.globals.update(get_page_url_name=get_page_url_name)

现在我在同一个app 文件夹中有一个views.py 文件,它具有路由配置和相应的代码,例如:

@app.route('/')
def index():
    if 'username' in session:
        return render_template("index.html")
    return redirect(url_for('login'))

我正在尝试运行该应用程序。我使用了以下命令:

env/Scripts/activate

这已经激活了环境,然后:

$env:FLASK_APP=.\run.py
flask run

当我在浏览器中打开 URL 时,这显示了一条消息,就像它在 http://127.0.0.1:5000 上运行并打印了以下消息:

127.0.0.1 - - [19/Nov/2020 10:23:15] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [19/Nov/2020 10:23:15] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [19/Nov/2020 10:23:16] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [19/Nov/2020 10:23:17] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [19/Nov/2020 10:23:18] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [19/Nov/2020 10:23:18] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [19/Nov/2020 10:23:18] "GET / HTTP/1.1" 404 -

我也试过

$env:FLASK_APP=.\app\views.py
flask run

这也打印了与在同一端口上运行时相同的消息,但打开时,显示的是相同的 404 消息。

如何运行此应用程序?我检查了文档,但这个应用程序的结构略有不同。提前感谢您的帮助。

【问题讨论】:

    标签: python flask http-status-code-404


    【解决方案1】:

    您必须在定义app 后导入您的视图文件。我建议你使用blueprint

    编辑

    views.py

    from flask import Blueprint
    
    bp = Blueprint('test', __name__, url_prefix='/')
    
    @bp.route('/')
    def index():
        if 'username' in session:
            return render_template("index.html")
        return redirect(url_for('login'))
    

    __init__py

    from app.helpers import get_page_display_name, get_page_url_name
    from views import bp
    from flask import Flask
    
    app = Flask(__name__)
    app.register_blueprint(bp)
    app.config['JSON_SORT_KEYS'] = False
    app.jinja_env.globals.update(get_page_display_name=get_page_display_name)
    app.jinja_env.globals.update(get_page_url_name=get_page_url_name)
    

    【讨论】:

    • 谢谢海达尔。但是你能告诉我怎么做吗?我实际上正在研究蓝图,但需要让这个应用程序工作以了解各种功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 2018-07-04
    • 2016-05-05
    • 1970-01-01
    相关资源
    最近更新 更多