Android

Срочно! Задача Python, методы в пайтон.

Создать список.
Задание 1
Создать view, в котором при методе POST по адресу /products будет добавлятся в данный список элемент с названием из body запроса(остальные атрибуты равны 0 или другим значениям). А при методе GET по тому же адресу выдавать все элементы списка через запятую(метод join).
Задание 2
Создать view, в котором при методе GET по адресу /products будет выдаваться страница, на которой будет отображения название этого продукта. Например:/products/1 должно выдавать страницу с текстом "car".
Задание 3
Добавить во view из задания 2 проверку на наличие элемента(индекс не больше последнего элемента в списке). При отсутствии страницы выдавать код ошибки 404
Задание 4
Добавить в список элемент, который равен None. При запросе подобного элемента(если элемент равен None) во views задания 2, пользователя должно перенести на основную страницу.
Задание 1:
 from flask import Flask, request 

app = Flask(__name__)
products = []

@app.route('/products', methods=['POST', 'GET'])
def handle_products():
if request.method == 'POST':
product_name = request.form['name']
products.append({'name': product_name, 'attribute1': 0, 'attribute2': 0})
return 'Product added successfully'
elif request.method == 'GET':
product_names = [product['name'] for product in products]
return ', '.join(product_names)
Задание 2
 from flask import Flask 

app = Flask(__name__)
products = ['car', 'book', 'phone']

@app.route('/products/')
def handle_product(index):
if index < len(products):
product_name = products[index]
return f'{product_name}'
else:
return '404 Page not found', 404
Задание 3:
 from flask import Flask 

app = Flask(__name__)
products = ['car', 'book', 'phone']

@app.route('/products/')
def handle_product(index):
if index < len(products):
product_name = products[index]
return f'{product_name}'
else:
return '404 Page not found', 404
Задание 4:
 from flask import Flask, redirect 

app = Flask(__name__)
products = ['car', 'book', None, 'phone']

@app.route('/products/')
def handle_product(index):
if index < len(products):
product_name = products[index]
if product_name is None:
return redirect('/')
return f'{product_name}'
else:
return '404 Page not found', 404

@app.route('/')
def index():
return 'Welcome to the main page!'
Акылбек Габдуллин
Акылбек Габдуллин
856
Лучший ответ
Азамат Мухаметжанов Можешь пожалуйста объяснить что делают эти команды. Пожалуйста!
 from django.http import HttpResponse,HttpRequest, Http404
from random import randint, redirect



def index(reg):
a = randint(0, 100)
b = randint(0, 100)
return HttpResponse()


class Products:
__id = 1
def __init__(self,name: str,
author: str,category: str, price: int) -> None:
self.id = Products.__id
self.name = name
self.author = author
self.category = category
self.price = price
Products.__id += 1

def __str__(self)-> str:
return f"""
Id: {self.id}
Name: {self.name}
Author: {self.author}
Category: {self.category}
Price: {self.price}
"""

pet_store = [

None
]



def handle_products(req):
if req.method == 'POST':
product_name = req.form['name']
pet_store.append({'name': product_name, 'attribute1': 0, 'attribute2': 0})
return HttpRequest('Product added successfully')
elif req.method == 'GET':
product_names = [product['name'] for product in pet_store]
return HttpResponse(', '.join(product_names))


def handle_product(index):
if index < len(pet_store):
product_name = pet_store[index]
return f'{product_name}'
else:
return Http404('Страница не найдена')


def handle_product(index):
if index < len(pet_store):
product_name = pet_store[index]
if product_name is None:
return redirect('/')
return f'{product_name}'
else:
return Http404('Страница не найдена')


def index():
return HttpResponse('Главная страница.')
from django.contrib import admin
from django.urls import path, re_path
from my_app.views import index

urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', index),
path('/products', methods=['POST', 'GET']),
re_path('/products/<int:index>'),
re_path('/products/<int:index>')
]