我的 django 项目中有一个电影模型:
class Movie(models.Model):
title = models.CharField(max_length=128, blank=False)
description = models.TextField()
movie_length = models.CharField(max_length=20)
director = models.CharField(max_length=50)
rating = models.FloatField(validators=[MinValueValidator(0.0),MaxValueValidator(10.0)])
created_at = models.DateTimeField(auto_now_add=True)
image = models.ImageField(upload_to='movie_img/')
category = models.CharField(max_length=50)
我想像这样使用 python API 包装器为 themoviedb.org API 填充数据库 https://github.com/celiao/tmdbsimple/或 https://github.com/wagnerrp/pytmdb3/ .但我不知道该怎么做。我只想一次放入大约 100 部电影,而不必逐一添加每部电影。 我该怎么做,请帮忙。 谢谢。
请您参考如下方法:
首先,您必须将数据从 API 读取到 Python 对象中。假设你现在有一个元组列表 L,每个元组是一个电影的记录。
你的脚本可以是 load_from_api.py
#!/usr/bin/env python
import os
import sys
# ... read the data from the API
# ... so L = [("movie title","movie description..."),("movie2 title",..)]
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"
import django
django.setup()
from yourapp.models import Movie
for movie in L:
m = Movie(title=movie[0],
description=movie[1],
...
)
m.save()
然后简单地运行脚本。 请注意,您可以使用 SQL 将数据直接加载到数据库,但不推荐这样做,因为这会忽略 Django 模型规则、默认值、验证、信号等。
