1

所以我开始掌握 Django,或者尝试。我有一些不依赖于网页调用的代码 - 它旨在用信息填充数据库。最终,它将被设置为一个 cron 作业以在一夜之间运行。这是第一次破解它,即进行初始填充(一旦我开始工作,我将转移到一个添加结构,只推送新记录。)我正在使用 Python 2.7、Django 1.5 和 Sqlite3 . 当我运行这段代码时,我得到

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.

这似乎相当明显,但我现在花了几个小时试图弄清楚如何调整该设置。我如何调用/打开连接/这里有什么正确的术语?我有许多这样的功能将被安排工作,这让我整个下午都感到沮丧。

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()

我最初是从http://django-csv-importer.readthedocs.org/en/latest/开始的,但我遇到了同样的错误,并且尝试调试它的文档没有多大意义。当我尝试在函数中调用 settings.configure 时,它​​说它不存在;大概我必须导入它,但无法做到这一点。

4

1 回答 1

1

确保 Django 和您的项目位于 PYTHONPATH 中,然后您可以执行以下操作:

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 ...

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

希望能帮助到你!

于 2013-07-31T21:33:06.050 回答