Здравствуйте.
Как можно сгенерировать ссылку для каждого поста в блоге?
example.com/posts/*
Где * от 1 и до кол-ва постов.
Нашел вот такой метод: @app.route('/post/<post.id>')
Но не понял, как его прикрутить. Консоль ругается.
pcdesign: я видел это в ссылке, что Вы бросали.
Мне нужно сгенереровать url на котором я потом выведу отдельно 1(!) пост.
что-бы работал example.com/posts/1 для поста с айди 1 и тд
pcdesign: ладно с route я вроде понял. Удалось вывести примитивный шаблон.
Как мне теперь вывести с БД соответствующий пост? Нужно наверное как-то передать значение post_id.
То что у меня:
@users_blueprint.route('/post/')
def post(post_id):
return render_template('post.html', post_id=post_id)
Ну выглядит нормально, непонимание - присутствует.
Редиректов здесь никаких нет.
В 'post_id' уже содержится ID блога, который нужно вывести.
Подставляйте туда разные цифры, которые соответсвуют нужной записи и все.
Например,
pcdesign: это я понял)
Как обратится к БД используя это значения, что-бы вывести именно нужный пост?
Что-то вроде "SELECT * FROM posts WHERE id=post_id", только средствами jinja2
hardwellZero: jinja2 - это темплейты, они для этого непреднамеренны.
Делать запрос надо в самой вашей flask программе.
Но для этого для начала надо с базой данных соединится.
Была статья на хабре о flask. И там как раз учатся на написании блога: habrahabr.ru/post/193242
Если лень ее читать, то в конце каждой статьи находится исходный код.
Копируйте его и смотрите как оно работает.
hardwellZero: ну сложно сказать не видя всей картины.
Но для начала
1) С базой данных вы соединились?
2) Вы используете flask sqlalchemy. Вы его установили и подгрузили?
3) Вы создали модель для таблицы: BlogPost?
hardwellZero: Ну логи теперь у вас есть, берете:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3
Скармливаете гуглу и находите решение :)