Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:数据导入脚本的标准位置/约定?_Python_Django - Fatal编程技术网

Python Django:数据导入脚本的标准位置/约定?

Python Django:数据导入脚本的标准位置/约定?,python,django,Python,Django,我正在处理许多Django项目,在大多数项目中,我有初始数据要导入 这些数据不是整洁的JSON,如中所示-它往往是凌乱的Excel或CSV文件。这些脚本看起来像下面的代码段,我只是将它们作为独立的Python运行,因为我没有更好的了解: import sys from django.core.management import setup_environ sys.path.append(LOCATION OF YOUR DJANGO PROJECTS, EX: 'C:\django') from

我正在处理许多Django项目,在大多数项目中,我有初始数据要导入

这些数据不是整洁的JSON,如中所示-它往往是凌乱的Excel或CSV文件。这些脚本看起来像下面的代码段,我只是将它们作为独立的Python运行,因为我没有更好的了解:

import sys
from django.core.management import setup_environ
sys.path.append(LOCATION OF YOUR DJANGO PROJECTS, EX: 'C:\django')
from mysite import settings
setup_environ(settings)

from PROJECT_NAME.APP_NAME.models import MODEL_NAME

import csv
reader = csv.reader(open(COMPLETE PATH TO YOUR DATA, EX: "C:/django/mysite/restaurants.csv"), dialect='excel')

for row in reader:
   COLUMN_ONE_TITLE = row[0]
   COLUMN_TWO_TITLE = row[1]

   MODEL_NAME.objects.get_or_create(MY_FIRST_COLUMN=COLUMN_ONE_TITLE, MY_SECOND_COLUMN=COLUMN_TWO_TITLE)
我觉得当我将这些项目提交到GitHub或将它们发送到客户机或其他任何地方时,我应该包括导入脚本。他们是这个项目的重要组成部分

在Django中,是否有一种标准的方法来存储我为导入此数据而编写的导入脚本

他们应该在项目中的什么位置?我应该使用管理命令吗


谢谢

我喜欢将它们放在管理命令中——这样,当其他人在项目中工作时,这些命令就是那些不熟悉初始开发过程中所做选择的人所期望的地方。

如果您将所有代码放在实用程序函数中会怎么样?因此,您的views.py将具有来自utils import csv\u import的
或类似内容。这样,视图就可以通过编程方式使用该功能。

Django支持模块。如果可以将CSV格式安排为反序列化程序,则可以使用常规的loaddata命令。

我首先建议Martin或Luke的建议

但是,如果出于某种原因这对您不起作用,那么将脚本放在git项目的根目录中是有意义的。注意,我并没有建议将其放在django项目的根目录中(尽管坦率地说,这也不是一个错误的想法),但我建议将django项目作为git repo的子文件夹,因为您可以将这些帮助文件放在不会阻塞django项目的地方