申し訳ありませんが、スタックオーバーフロー内を検索してグーグルで検索しましたが、有用な情報は見つかりませんでした。私はフラスコアプリケーション、pythonバージョン2.6フラスコバージョン0.9を持っています
そのアプリケーション階層は次のようなものです
application/
__init__.py
app.py
hello/
__init__.py
view.py
templates/
hello.html
両方のファイルinit .py が空です
app.py
-----------------------
from flask import Flask
from flup.server.fcgi import WSGIServer
from hello.view import hello
app = Flask(__name__)
app.debug = True
app.register_blueprint(hello, url_prefix='/hello')
if __name__ == '__main__':
WSGIServer(app, bindAddress='/tmp/app.sock').run()
view.py
-----------------------
import os
from flask import Blueprint, render_template, abort
from jinja2 import TemplateNotFound
hello = Blueprint('hello', __name__, template_folder='templates')
@hello.route('/')
def get_index():
try:
return render_template('hello.html')
except TemplateNotFound:
abort(404)
hello.html
-----------------------
<!DOCTYPE html>
<html>
<head>
{% block head %}
<meta charset="utf-8">
{% endblock %}
</head>
<body>
<div>
{% block body %}
<h1><a href="{{ url_for('hello.get_index') }}">Click Me</a></h1>
{% endblock %}
</div>
</body>
</html>
と入力すると正常に動作localhost:8080/hello
しますが、html のリンクをクリックするとエラーになります。その URL 値はhref="/hello/hello/"
(正しいはず/hello/
ですか?) であることがわかりました。hello.get_index が にマップされていることは知って/hello/
いますが、最初のものhello/
が由来することはわかりません。どんなヒントでも大歓迎です。