【发布时间】:2021-08-07 01:24:48
【问题描述】:
基本上,我正在编写一个调用第三方免费 API 的 Django 应用程序。取到后 来自 API 的数据,我正在尝试将数据保存到 Django 模型中。我创建了一个用于存储 API 数据的模型。 在 Django SQLITE DB 中保存数据后,当我刷新浏览器时,完全相同的数据再次保存在 SQLITE 数据库表中。我怎样才能防止这个问题?
我心中的一个逻辑:
如果数据存在则无需插入
否则插入
但我无法在 Django 视图中应用此逻辑,因为不知道如何操作?
模型.py
from django.db import models
# Create your models here.
class DogFacts(models.Model):
fact = models.CharField(max_length=100)
def __str__(self):
return self.fact
views.py
def api(request):
url = 'https://dog-facts-api.herokuapp.com/api/v1/resources/dogs/all'
response = requests.get(url)
json_response = response.json()
# save all dog facts in the db
for i in json_response:
dog_facts = DogFacts(fact= i.get("fact"))
dog_facts.save()
return redirect('api')
谢谢。
【问题讨论】:
标签: python-3.x django api django-models django-views