Мой макет приложения для флэков:
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?