Как создать индексный маршрут с помощью Flask Blueprint - PullRequest
0 голосов
/ 30 апреля 2019

Пытаясь организовать свой проект, я не могу получить доступ к странице индекса, например, когда я получаю доступ к localhost:5000/, он вызывает posts/index. Я хотел бы позвонить /templates/index, но я не могу найти пример.

Пример структуры:

|--__init__.py    
/views
     |--posts.py
     |--users.py
    /templates
     |_/posts
       |--index.html
       |--add.html
     |_/users
       |--index.html
       |--add.html
     |--index.html

Файл инициализации, я импортирую план

from website.views import posts
from website.views import users
app.register_blueprint(posts.mod)
app.register_blueprint(users.mod) 

Файл представлений, вызывающий маршруты. Этот пример posts.py.

mod = Blueprint('posts',__name__)

@mod.route('/')
def index():
 return render_template('posts/index.html')

@mod.route('/add')
def add():
 return render_template('posts/add.html')

@mod.route('/edit')
def edit():
 return render_template('posts/edit.html')

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Вы можете добавить префикс при регистрации проекта.

from website.views import posts

app.register_blueprint(posts.mod, url_prefix='/posts')

# /
@app.route('/')
def index():
 return render_template('index.html')
mod = Blueprint('posts',__name__)

# posts/
@mod.route('/')
def index():
 return render_template('posts/index.html')

# posts/add
@mod.route('/add')
def add():
 return render_template('posts/add.html')

# posts/edit
@mod.route('/edit')
def edit():
 return render_template('posts/edit.html')

источник: http://flask.pocoo.org/docs/1.0/blueprints/#registering-blueprints

0 голосов
/ 30 апреля 2019

Flask по умолчанию заглядывает в каталог templates, когда ему нужно отобразить страницу (html).

В вашем случае вы указали posts/index.html, что означает, что он будет переведен в templates/posts/index.html,Вам нужно просто указать, что вы хотите визуализировать только index.html, и это автоматически будет ссылаться на templates/index.html.

. Вы можете сделать это, например, используя

@mod.route('/')
def index():
 return render_template('index.html')

Однако вы можетеболее подробную информацию можно найти на Шаблоны рендеринга

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...