Макет моего приложения flask:
myapp/
run.py
admin/
__init__.py
views.py
pages/
index.html
main/
__init__.py
views.py
pages/
index.html
_ init _ .py файлы пусты. admin / views.py содержимое:
from flask import Blueprint, render_template
admin = Blueprint('admin', __name__, template_folder='pages')
@admin.route('/')
def index():
return render_template('index.html')
main / views.py похоже на admin / views.py :
from flask import Blueprint, render_template
main = Blueprint('main', __name__, template_folder='pages')
@main.route('/')
def index():
return render_template('index.html')
run.py равно :
from flask import Flask
from admin.views import admin
from main.views import main
app = Flask(__name__)
app.register_blueprint(admin, url_prefix='/admin')
app.register_blueprint(main, url_prefix='/main')
print app.url_map
app.run()
Теперь, если я обращаюсь к http://127.0.0.1:5000/admin/
, он правильно отображает admin / index.html.
Однако http: / /127.0.0.1:5000/main/
по-прежнему показывает admin / index.html вместо main / index.html. Я проверил app.url_map:
<Rule 'admin' (HEAD, OPTIONS, GET) -> admin.index,
<Rule 'main' (HEAD, OPTIONS, GET) -> main.index,
Кроме того, я убедился, что функция index в main / views.py вызывается должным образом. Если я переименую main / index.html во что-то другое, то он работает. Итак, без переименования , как добиться того, чтобы 1http: //127.0.0.1: 5000 / main / 1 показывал main / index.html?