mirror of
https://github.com/EDeev/web-dev.git
synced 2026-06-15 11:01:15 +03:00
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
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/<int:index>')
|
||
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)
|