Skip to content

Instantly share code, notes, and snippets.

@kianurivzzz
Created September 21, 2024 17:31
Show Gist options
  • Save kianurivzzz/21c0d51eeac2b9c4a8f9675734bbbdde to your computer and use it in GitHub Desktop.
Save kianurivzzz/21c0d51eeac2b9c4a8f9675734bbbdde to your computer and use it in GitHub Desktop.
# src/app.py
from flask import Flask, render_template
from data import generate_users
users = generate_users(100)
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
# тут код
# тут код
# src/data.py
import random
from faker import Faker
SEED = 1234
def generate_users(users_count):
fake = Faker()
fake.seed_instance(SEED)
ids = list(range(1, users_count))
random.seed(SEED)
random.shuffle(ids)
users = []
for i in range(users_count - 1):
users.append({
'id': ids[i],
'first_name': fake.first_name(),
'last_name': fake.last_name(),
'email': fake.free_email(),
})
return users
<!-- templates/index.html -->
<!doctype html>
<html>
<head>
<title>Example application</title>
</head>
<body>
<a href="/users">Пользователи</a>
</body>
</html>
<!-- templates/users/index.html -->
<!doctype html>
<html>
<head>
<title>Example application</title>
</head>
<body>
<!-- тут код -->
<!-- тут код -->
</body>
</html>
<!-- templates/users/show.html -->
<!doctype html>
<html>
<head>
<title>Example application</title>
</head>
<body>
<a href="/users">Пользователи</a>
<!-- тут код -->
<!-- тут код -->
</body>
</html>

Большинство сайтов представляет собой набор веб-страниц, через которые пользователи взаимодействуют с данными.

В этой практике вам предстоит выводить список пользователей, а также детальные странички каждого пользователя.

src/app.py

Реализуйте обработчики для вывода списка пользователей /users и конкретного пользователя /users/<id>. Список пользователей содержится в переменной users. Каждый пользователь представлен словарем, у которого есть числовой ключ id.

Пример

# Гипотетический пример показывающий структуру
users = [
  {
    'id': 4,
    'first_name': 'John',
    'last_name': 'Doe',
    'email': '[email protected]',
  },
  # другие пользователи
]

Если пользователя с таким идентификатором не существует, сайт должен вернуть ошибку 404, то есть страницу с HTTP кодом 404 и текстом Page not found.

src/templates/users/index.html

Реализуйте вывод списка пользователей /users со ссылкой на просмотр каждого из них:

Список пользователей выведите в табличном виде с полями: id и first_name

first_name сделайте ссылкой на страницу конкретного пользователя

Пример

<table>
  <tr>
    ...
    <td>4</td>
    <td>
      <a href="/users/4">John</a>
    </td>
    ...
  </tr>
</table>

templates/users/show.html

Реализуйте вывод всех полей пользователя по маршуту /users/. Вывод организуйте как вам удобно — проще всего использовать таблицу.

Подсказки Использование цикла for в шаблонах.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment