我正在 DJANGO 中制作一个应用程序来处理很多“问题”。模型中指定了一个问题表,或多或少会有数千个问题。
现在,我手头有一个 Excel 文件,其中包含所有问题,我可以从那里创建一个 CSV 文件。我只需要获取问题表中的 CSV 数据。
最简单的方法是什么?谁能告诉我有什么工具、流程、代码可以做到这一点吗?
A Django管理命令 https://docs.djangoproject.com/en/3.1/howto/custom-management-commands/可能是将这些数据导入数据库的最佳选择。它使您可以访问 Django 的 ORM,同时与请求/响应周期分开。您可以使用 .csv 文件作为参数从命令行调用它。
这是一个简单的例子。
import csv
from django.core.management import BaseCommand
from app.models import Question
class Command(BaseCommand):
help = 'Load a questions csv file into the database'
def add_arguments(self, parser):
parser.add_argument('--path', type=str)
def handle(self, *args, **kwargs):
path = kwargs['path']
with open(path, 'rt') as f:
reader = csv.reader(f, dialect='excel')
for row in reader:
Question.objects.create(
attr1=row[0],
attr2=row[1],
)
如果您将其另存为app/management/commands/load_questions.py
您可以将其调用为:
python manage.py load_questions --path /path/to/your/file.csv
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)