Skip to content

Instantly share code, notes, and snippets.

@kianurivzzz
Created September 6, 2024 18:31
Show Gist options
  • Save kianurivzzz/ef615d2cd9e339a0e93638ddabcbc395 to your computer and use it in GitHub Desktop.
Save kianurivzzz/ef615d2cd9e339a0e93638ddabcbc395 to your computer and use it in GitHub Desktop.
from flask import Flask, jsonify, request
from data import generate_companies
companies = generate_companies(100)
app = Flask(__name__)
@app.route('/')
def index():
return "<a href='/companies'>Компании</a>"
# Ниже можно написать рашение
import random
from faker import Faker
SEED = 1234
def generate_companies(companies_count):
fake = Faker()
fake.seed_instance(SEED)
ids = list(range(companies_count))
random.seed(SEED)
random.shuffle(ids)
companies = []
for i in range(companies_count):
companies.append({
"name": fake.company(),
"phone": fake.phone_number(),
})
return companies

Пейджинг — механизм, который позволяет перемещаться по большим коллекциям небольшими порциями.

Часто встречается в Интернете, например, в результатах запросов поисковых систем. Пейджинг с точки зрения пользователя выглядит как параметры запроса: page определяет текущую страницу, а per — количество элементов на страницу.

Имена могут быть и другими, но обычно их называют, как показано выше. Запрос c page, равным 1, аналогичен запросу без указания page.

app.py

Реализуйте маршрут /companies, по которому отдается список компаний в виде json. Компании отдаются не все сразу, а только соответствующие текущей запрошенной странице. По умолчанию выдается 5 результатов на запрос.

# выдаст первые пять страниц
GET /companies
# выдаст компании с 7 по 9
GET /companies?page=3&per=3

Подсказки

Список компаний лежит в массиве companies

При получении параметров запроса используйте type. Это позволит привести полученное значение к определенному типу

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