День 4: Створення додатку для пошуку рецептів з Django та Spoonacular API

pic

Зображення згенеровано DALL.E

Чи часто ви замислювались, що можна приготувати з інгредієнтів, які є вдома? Або, можливо, ви шукали простий спосіб знайти рецепти за конкретною стравою чи ключовим словом? У цьому блозі ми створимо веб-додаток "Recipe Finder" за допомогою Django та Spoonacular API, щоб вирішити ці проблеми. Цей додаток дозволить користувачам швидко знаходити рецепти та переглядати детальні інструкції, допомагаючи втілити кулінарні ідеї у життя з легкістю.

Крок 1: Налаштування проекту Django

1.1 Встановлення необхідних пакетів

Встановіть Django та бібліотеку requests:

pip install django requests

1.2 Створення проекту та додатку

Виконайте наступні команди, щоб створити новий проект та додаток Django:

django-admin startproject recipe_finder  
cd recipe_finder  
python manage.py startapp finder

1.3 Налаштування settings.py

Додайте новий додаток (finder) до INSTALLED_APPS у файлі settings.py:

INSTALLED_APPS = [  
 ...  
 'finder',  
]

Також додайте плейсхолдер для ключа Spoonacular API у файлі settings.py:

SPOONACULAR_API_KEY = 'your_api_key_here'

Отримати ключ Spoonacular API можна на https://spoonacular.com/food-api/console#Dashboard

pic

pic

Отримання API ключа з консолі API

Крок 2: Створення Views (видів)

У файлі finder/views.py визначте два види: один для пошуку рецептів та інший для перегляду деталей рецепту.

import requests  
from django.shortcuts import render  
from django.conf import settings  

def search_recipes(request):  
 if request.method == 'POST':  
 query = request.POST.get('query')  
 url = "https://api.spoonacular.com/recipes/complexSearch"  
 params = {  
 'apiKey': settings.SPOONACULAR_API_KEY,  
 'query': query,  
 'number': 10  
 }  
 response = requests.get(url, params=params)  
 data = response.json()  
 recipes = data.get('results', [])  
 return render(request, 'finder/results.html', {'recipes': recipes})  
 return render(request, 'finder/search.html')  

def recipe_detail(request, recipe_id):  
 url = f"https://api.spoonacular.com/recipes/{recipe_id}/information"  
 params = {'apiKey': settings.SPOONACULAR_API_KEY}  
 response = requests.get(url, params=params)  
 recipe = response.json()  
 return render(request, 'finder/detail.html', {'recipe': recipe})

Крок 3: Налаштування URL-ів

3.1 URL-і на рівні додатку

У файлі finder/urls.py визначте шаблони URL-ів для додатку:

from django.urls import path  
from . import views  

urlpatterns = [  
 path('', views.search_recipes, name='search_recipes'),  
 path('recipe/<int:recipe_id>/', views.recipe_detail, name='recipe_detail'),  
]

3.2 URL-і на рівні проекту

У файлі recipe_finder/urls.py підключіть URL-і додатку:

from django.contrib import admin  
from django.urls import path, include  

urlpatterns = [  
 path('admin/', admin.site.urls),  
 path('', include('finder.urls')),  
]

Крок 4: Створення шаблонів

4.1 Базовий шаблон

Створіть шаблон base.html для забезпечення сталого вигляду сторінок по всьому сайту.
Розмістіть це в директорії templates/:











Recipe Finder
    {% block content %}    {% endblock %}        
© 2025 Recipe Finder

4.2 Шаблон пошуку

Створіть finder/templates/finder/search.html:

{% extends 'base.html' %}      
{% block content %}   
Пошук рецептів
       {% csrf_token %}        
Пошук      
{% endblock %} 

4.3 Шаблон результатів

Створіть finder/templates/finder/results.html:

{% extends 'base.html' %}      
{% block content %}   
Результати пошуку
   {% for recipe in recipes %}    
{{ recipe.title }}
Переглянути рецепт    
   {% endfor %}   
{% endblock %} 

4.4 Шаблон деталей рецепту

Створіть finder/templates/finder/detail.html:

{% extends 'base.html' %}      
{% block content %}   
{{ recipe.title }}
Інгредієнти:
   {% for ingredient in recipe.extendedIngredients %}    
{{ ingredient.original }}
   {% endfor %}   
Інструкції:
   {{ recipe.instructions|safe }}   
{% endblock %} 

Крок 5: Запуск додатку

  1. Застосуйте міграції та запустіть сервер:
python manage.py migrate   
python manage.py runserver
  1. Відкрийте браузер та перейдіть за адресою http://127.0.0.1:8000/, щоб використовувати додаток Recipe Finder.

Вітаємо! Ви успішно створили додаток Recipe Finder, використовуючи Django та Spoonacular API. З цим проектом ви навчились інтегрувати зовнішні API, обробляти введення користувача та створювати динамічні веб-додатки.

Не соромтесь розвивати цей проект далі, додаючи нові функції, як-то автентифікація користувачів, улюблені рецепти або вдосконалене оброблення помилок. Поділитися вашим завершеним додатком або власними налаштуваннями онлайн — чудовий спосіб продемонструвати ваші навички!

pic

Демонстрація Recipe Finder

Отримати повний код можна за посиланням https://github.com/Mathurdanduprolu/Day4RecipeMaker.git

  • Слідкуйте за мною на Medium для більше уроків по Django та веб-розробці.
  • Поділіться своїм досвідом та відгуками в коментарях — буду радий почути від вас!
  • Не забудьте поставити лайк та поділитися цим блогом зі своїми друзями.

Будьмо разом і далі створювати неймовірні додатки! 🚀

Перекладено з: Day 4: Building a Recipe Finder App with Django and Spoonacular API

Leave a Reply

Your email address will not be published. Required fields are marked *