无法解决Flask蓝图404错误

时间:2019-07-04 19:34:41

标签: python-3.x flask web-applications http-status-code-404 blueprint

我目前正在研究flask_app。这是我的项目结构

├── pypi_org
│   ├── __pycache__
│   │   └── app.cpython-37.pyc
│   ├── app.py
│   ├── services
│   │   └── package_services.py
│   ├── static
│   │   ├── css
│   │   │   └── site.css
│   │   ├── html
│   │   └── js
│   ├── templates
│   │   ├── home
│   │   │   ├── about.html
│   │   │   └── index.html
│   │   ├── packages
│   │   │   └── details.html
│   │   └── shared
│   │       └── _layout.html
│   ├── tests
│   ├── viewmodels
│   └── views
│       ├── home_views.py
│       └── package_views.py
├── requirements-dev.txt
└── requirements.text

我已经在home_views.py中定义了蓝图

from flask import render_template
from flask import Blueprint
from pypi_org.services import package_services

blueprint = Blueprint('home', __name__, template_folder='templates')


@blueprint.route('/')
def index():
    test_packages = package_services.get_latest_packages()
    return render_template('home/index.html', packages=test_packages)


@blueprint.route('/about')
def about():
    return render_template('home/about.html')

下面给出了app.py的代码

from flask import Flask
from pypi_org.views import home_views, package_views

app = Flask(__name__)


def main():
    register_blueprints()
    app.run(debug=True)


def register_blueprints():
    app.register_blueprint(home_views.blueprint)
    app.register_blueprint(package_views.blueprint)


if __name__ == '__main__':
    main()

当我运行app.py时,出现404错误。 我不确定自己在做什么错。一切看起来都不错。

有人可以看看吗?

1 个答案:

答案 0 :(得分:0)

template_folder ='templates'可能在目录层次结构中处于错误的级别。

例如,您可以尝试类似的方法。

blueprint = Blueprint('home', __name__, template_folder='../templates')

或类似的方法来查看是否可以找到正确的项目结构级别,以正确定位模板目录。

您可以在this帖子中找到有关此主题的更多信息。