import random from flask import Flask, render_template from faker import Faker fake = Faker('ru_RU') app = Flask(__name__) application = app images_ids = ['Pic1', 'Pic2', 'Pic3', 'Pic4', 'Pic5'] def generate_comments(replies=True): comments = [] for i in range(random.randint(1, 3)): comment = { 'author': fake.name(), 'text': fake.text() } if replies: comment['replies'] = generate_comments(replies=False) comments.append(comment) return comments def generate_post(i): return { 'title': fake.company(), 'text': fake.paragraph(nb_sentences=100), 'author': fake.name(), 'date': fake.date_time_between(start_date='-2y', end_date='now'), 'image_id': f'{images_ids[i]}.jpg', 'comments': generate_comments() } posts_list = sorted([generate_post(i) for i in range(5)], key=lambda p: p['date'], reverse=True) @app.route('/') def index(): return render_template('index.html') @app.route('/posts') def posts(): return render_template('posts.html', title='Посты', posts=posts_list) @app.route('/posts/') def post(index): p = posts_list[index] return render_template('post.html', title=p['title'], post=p) @app.route('/about') def about(): return render_template('about.html', title='Об авторе') if __name__ == '__main__': app.run(debug=True)