Как создать функцию( метод) в классе Product по сохранению словаря в json файл, при переходе на сайт должно выводиться содержимое данного json файла?
Пока что просто разбираюсь в django. Не понятно как в моём классе создать метод по сохранению словаря в json, и чтобы при переходе на мой сайт по ссылке (http://localhost:8000/list) выводилось содержимое данного json файла.
Views:
from django.http import HttpResponse, HttpRequest
from django.http import Http404
from django.http import StreamingHttpResponse
from django.http import FileResponse
from django.http import JsonResponse
from django.template.loader import get_template
import json
def index(request):
template = get_template('index.html')
return HttpResponse(template.render())
def file_show(request):
file = 'C:\lesson2.2\grocery_store\grocery_store\my_app\Zananas.jpg'
return FileResponse(open(file, 'rb'))
# Класс Продуктов
class Product:
__MAX_ID = 0
def __init__(self, category: str, name: str, price: int, weight: int, expiration_date: str):
self.id = Product.__MAX_ID
Product.__MAX_ID += 1
self.category = category
self.name = name
self.price = price
self.weight = weight
self.expiration_date = expiration_date
def get_id(self):
return self.id
def __str__(self):
return (f'ID продукта: {self.id}<br>'
+ f'Категория продукта: {self.category}<br>'
+ f'Название продукта: {self.name}<br>'
+ f'Цена товара: {self.price}руб.<br>'
+ f'Вес продукта: {self.weight}кг.<br>'
+ f'Дата хранения продукта: {self.expiration_date}.<br>')
# Преобразование в словарь
def get_to_dict(self):
return {
'id': self.id,
'category': self.category,
'name': self.name,
'price': self.price,
'weight': self.weight,
'expiration_date': self.expiration_date
}
# Словарь или продукты
products = [Product('Фрукты', 'Ананас', 139.89, 1, 'до 1 месяца'),
Product('', '', '', '', ''),
Product('Фрукты', 'Виноград', 119.99, 1, 'до 5–6 месяцев'),
Product('Фрукты', 'Лимон', 89.99, 1, 'до7–8 месяцев'),
Product('Фрукты', 'Фейхоа', 149.99, 1, 'до 1 недели')]
products1 = {'id': 0, 'category': 'Фрукты', 'name': 'Ананас', 'price': 139.89, 'weight': 1,
'expiration_date': 'до 1 месяца'},
{'id': 1, 'category': '', 'name': '', 'price': '', 'weight': '', 'expiration_date': ''},
{'id': 2, 'category': 'Фрукты', 'name': 'Виноград', 'price': 119.99, 'weight': 1, 'expiration_date': 'до 5–6 месяцев'},
{'id': 3, 'category': 'Фрукты', 'name': 'Лимон', 'price': 89.99, 'weight': 1, 'expiration_date': 'до7–8 месяцев'},
{'id': 4, 'category': 'Фрукты', 'name': 'Фейхоа', 'price': 149.99, 'weight': 1, 'expiration_date': 'до 1 недели'}
urls:
from django.contrib import admin
from django.urls import path
from my_app.views import index, file_show, json_show
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', index),
path('file', file_show, name='file_show'),
path('json', json_show, name='json_show')
]