Importing CSV to Django and settings not recognised

大城市里の小女人 提交于 2020-01-05 04:16:51

问题


So i'm getting to grips with Django, or trying to. I have some code that isn't dependent on being called by the webpage - it's designed to populate the database with information. Eventually it will be set up as a cron job to run overnight. This is the first crack at it, which is to do an initial population (once I have that working, I'll move to an add structure, where only new records are pushed.) I'm using Python 2.7, Django 1.5 and Sqlite3. When I run this code, I get

Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

That seems fairly obvious, but I've spent a couple of hours now trying to work out how to adjust that setting. How do I call / open a connection / whatever the right terminology is here? I have a number of functions like this that will be scheduled jobs, and this has been frustrating me all afternoon.

import urllib2
import csv
import requests

from django.db import models
from gmbl.models import Match   

master_data_file = urllib2.urlopen("http://www.football-data.co.uk/mmz4281/1213/E0.csv", "GET")
data = list(tuple(rec) for rec in csv.reader(master_data_file, delimiter=','))

for row in data:
    current_match = Match(matchdate=row[1], 
        hometeam=row[2], 
        awayteam = row [3], 
        homegoals = row [4], 
        awaygoals = row[5],
        homeshots = row[10],
        awayshots = row[11],
        homeshotsontarget = row[12],
        awayshotsontarget = row[13],
        homecorners = row[16],
        awaycorners = row[17])
    current_match.save()

I had originally started out with http://django-csv-importer.readthedocs.org/en/latest/ but I had the same error, and the documentation doesn't make much sense trying to debug it. When I tried calling settings.configure in the function, it said it didn't exist; presumably I had to import it, but couldn't make that work.


回答1:


Make sure Django, and your project are in PYTHONPATH then you can do:

import urllib2
import csv
import requests
from django.core.management import setup_environ
from django.db import models
from yoursite import settings

setup_environ(settings)

from gmbl.models import Match   

master_data_file = urllib2.urlopen("http://www.football-data.co.uk/mmz4281/1213/E0.csv", "GET")
data = list(tuple(rec) for rec in csv.reader(master_data_file, delimiter=','))

# ... your code ...

Reference: http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/

Hope it helps!



来源:https://stackoverflow.com/questions/17979597/importing-csv-to-django-and-settings-not-recognised

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!