Скриншот архива с проектом

Структура проекта

Задание
Разработать сайт рецептов на фреймворке Django и языке Python / Приложение должно обладать базовым функционалом, приятным интерфейсом (роекомендуем использовать Bootstrap). База данных - можно использовать любую удобную, в том числе SQLite. Также должна присутствовать регистрация и авторизация пользователей.
Функционал программы
- Добавление блюд
- Добавление рецептов
- Добавление ингредиентов
- Редактирование блюд, рецептов и ингредиентов
- Удаление блюд, рецептов и ингредиентов
- Регистрация и авторизация пользователей
Фрагмент программного кода
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Category(models.Model):
objects = models.Manager()
name = models.CharField(max_length=200,
help_text=" Введите категорию блюда",
verbose_name="Категория блюда")
class Meta:
verbose_name = "Категория"
verbose_name_plural = "Категории"
def __str__(self):
return self.name
class Ingredient(models.Model):
objects = models.Manager()
name = models.CharField(max_length=100, verbose_name="Название ингредиента")
quantity = models.PositiveIntegerField(verbose_name="Количество (гр./ шт.)")
class Meta:
verbose_name = "Ингредиент"
verbose_name_plural = "Ингредиенты"
def __str__(self):
return f"{self.quantity} г {self.name}"
class Recipe(models.Model):
objects = models.Manager()
title = models.CharField(max_length=200, verbose_name="Название рецепта")
description = models.TextField(verbose_name="Описание рецепта")
ingredients = models.ManyToManyField(Ingredient, related_name='recipes', verbose_name="Ингредиенты")
cooking_steps = models.TextField(verbose_name="Инструкции по приготовлению")
cooking_time = models.PositiveIntegerField(help_text="Время приготовления в минутах",
verbose_name="Время приготовления")
photo = models.ImageField(upload_to='images', blank=True, null=True, verbose_name="Изображение блюда")
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Автор рецепта")
def display_ingredients(self):
return ", ".join([ingredient.name for ingredient in self.ingredients.all()])
display_ingredients.short_description = 'Ингредиенты'
def __str__(self):
return self.title
class Meta:
verbose_name = "Рецепт"
verbose_name_plural = "Рецепты"
class Food(models.Model):
objects = models.Manager()
name = models.CharField(max_length=100, verbose_name="Название блюда")
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, related_name='foods', verbose_name="Рецепт")
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='foods', verbose_name="Категория")
image = models.ImageField(upload_to='images', blank=True, null=True, verbose_name="Изображение блюда")
def __str__(self):
return self.name
class Meta:
verbose_name = "Блюдо"
verbose_name_plural = "Блюда"
Пояснения по запуску программы
Приветствую! За раннее выражаю благодарность за покупку работы
Для эффективной работы с приложением вам потребуется:
- редактор кода VS Code - скачать можно тут - https://code.visualstudio.com/download
- интерпретатор языка Python, скачать можно тут - https://www.python.org/downloads/ Рекомендую скачать версию 3.12.3
- После установки всего выше описанного, настройте VS Code для работы с Python установив необходимые расширения (см. инструкцию - https://youtu.be/j5e5gwZgMH8) .
- Переходите в директорию с проектом - в терминале вводите cd blog и затем python manage.py runserver
- Запускаете приложение и пользуетесь. Также вы можете самостоятельно выложить проект на Heroku.
Телеграм
-