2015-06-04 4 views
0

У меня есть приложение, и я работаю над написанием кода, чтобы позволить мне взять файл csv и поместить его в мою базу данных, но я не могу понять, где разместить этот код. Я планирую использовать консоль для запуска .py-файла, в котором находится код, но мне нужно, чтобы он мог использовать функцию Django get_or_create.Django - Где поставить код чтения CSV

Как мне это сделать? Я новичок в Python и Django, поэтому я хорош и потерян.

+1

Подробнее о пользовательских командах управления https://docs.djangoproject.com/en/dev/howto/custom-management-commands/. Вы сможете запускать их с терминала (с чем-то вроде 'python manage.py import_csv'), а также иметь доступ к чему-либо в ваших приложениях или Django. –

ответ

1

Как упоминалось @Adrian Ghiuta, выполнение его с помощью пользовательских команд управления было бы способом сделать это, если вам нужно сделать это повторяемым.

Второй вариант заключается в преобразовании CSV-файла в объекты json, которые сопоставляются с вашей моделью данных, а затем просто делают python manage.py loaddata example_from_csv.json.

Однако самым простым способом для начала было бы написать одноразовый скрипт python в каталоге приложения. Затем вы можете сделать python manage.py shell, чтобы открыть оболочку django, и просто импортировать одноразовый (при условии, что ваш скрипт называется 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])