我有一个应用程序,我正在编写代码,让我拿一个csv文件并将其放入我的数据库,但我无法弄清楚该代码的放置位置。我计划只使用控制台来运行代码所在的.py文件,但我需要它才能使用Django get_or_create函数。
我该怎么做呢?我是Python和Django的新手,所以我很好并且迷失了。
答案 0 :(得分:1)
正如@Adrian Ghiuta所提到的,如果您需要使这个可重复,那么通过自定义管理命令执行此操作就是这样做的。
第二个选项是将csv文件转换为映射到数据模型的json对象,然后执行python manage.py loaddata example_from_csv.json
。
但是,最简单的入门方法是在app目录中编写一次性python脚本。然后,您可以执行python manage.py shell以启动django感知shell并且只进行一次性导入(假设您的脚本名为one-off.py)。在one-off.py中,您可以例如做点什么
import csv
from .models import MyModel
... # get the data out of the csv file using the python csv library
for data in csvdata:
MyModel.objects.get_or_create(data[0])