You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Django项目中集成spoonacular API并配置双数据库?

Django集成Spoonacular API及双数据源方案

一、完全可以在Django项目中集成Spoonacular API

集成逻辑简单直接:

  1. 先到Spoonacular平台申请API密钥,获得调用权限
  2. 在Django项目里用requests库直接发起API请求,也可以用第三方封装的spoonacular Python库简化开发流程
  3. 编写工具函数封装API调用逻辑,在视图、表单或模型中按需调用

示例工具函数(可放在app的utils.py文件中):

import requests
from django.conf import settings

def get_spoonacular_ingredients(query):
    url = f"https://api.spoonacular.com/food/ingredients/search"
    params = {
        "query": query,
        "apiKey": settings.SPOONACULAR_API_KEY,
        "number": 10
    }
    response = requests.get(url, params=params)
    if response.status_code == 200:
        return response.json().get("results", [])
    return []

在Django的表单或视图里,直接调用这个函数就能获取食材数据,供用户创建食谱时选择。

二、关于"双数据库"的说明

Spoonacular API是外部HTTP服务,并非传统的关系型/非关系型数据库,所以不能直接配置为Django的第二个数据库(Django的多数据库配置仅针对可通过ORM连接的数据库服务)。但你可以实现双数据源配合的效果:

  • 用Django自带的db.sqlite3存储项目自有数据:比如用户信息、自定义食谱、本地维护的常用食材库、用户收藏内容等
  • 调用Spoonacular API获取外部食材数据:当用户需要更多食材选项时,实时调用API拉取数据;也可以将高频使用的食材同步到SQLite中,减少API调用次数,提升页面响应速度

示例场景代码(视图中结合本地与API数据):

from django.shortcuts import render
from .models import LocalIngredient
from .utils import get_spoonacular_ingredients

def ingredient_select(request):
    # 从本地SQLite获取常用食材
    local_ingredients = LocalIngredient.objects.all()
    # 根据用户搜索关键词,从Spoonacular API获取更多食材
    query = request.GET.get("q", "")
    api_ingredients = get_spoonacular_ingredients(query)
    return render(request, "ingredient_select.html", {
        "local_ingredients": local_ingredients,
        "api_ingredients": api_ingredients
    })

内容的提问来源于stack exchange,提问作者mari gavr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:45:04