2012-06-09 4 views
0

간단한 스도쿠 게임을 만들고 싶습니다. 아이디어는 매 시간마다 새로운 "퍼즐"을 만들어 데이터베이스에 저장하고 사용자가 해결하도록합니다. 각 해결 시도는 검증을 위해 데이터베이스와 비교됩니다. 그 목적을 위해 퍼즐을 생성하고 데이터베이스에 저장하는 python 스크립트를 만들고 싶습니다. 모델 설정 내 데이터베이스는 다음과 같습니다파이썬 Django sqlite 연결

from django.db import models 

class user(models.Model): 
    name = models.CharField(max_length=30) 
    password = models.CharField(max_length=30) 
    time_registered=models.DateTimeField() 
    time_uploaded=models.DateTimeField() 
    points=models.IntegerField() 
    saved_sudoku=models.CommaSeparatedIntegerField(max_length=81) 
    solved=models.BooleanField() 

    def __str__(self): 
     return self.name 

class server_sudoku(models.Model): 
    time_uploaded=models.DateTimeField() 
    generated_sudoku=models.CommaSeparatedIntegerField(max_length=81) 

를 자, 내가 사용하는 경우 : views.py에서

name1=request.POST["name"] 
pass1=request.POST["password"] 
newuser=user(name=name1,password=pass1,time_registered=datetime.datetime.now(),time_uploaded=datetime.datetime.now(),points=0,saved_sudoku="",solved=False) 
newuser.save() 

가 새 사용자를 만듭니다. 그래서 내 생각을 확인하기 위해 "generate_sudoku.py"애플리케이션을 만들었습니다. 데이터베이스 연결을 테스트하려면 사용자를 추가하십시오.

raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) 
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 

희망 나는 그것이마다 자동으로 실행되도록 창에서 스케줄러를이 응용 프로그램을 실행하고 싶습니다, 그것은 분명히 :

#!/usr/bin/env python 
from db_interface.models import user 

import random 
import datetime 

newuser=user(name="name", password="pass", time_registered=datetime.datetime.now() ,time_uploaded=datetime.datetime.now(), points=0, saved_sudoku="", solved=False) 
newuser.save() 

이 간단한 응용 프로그램은 나에게 오류를 제공합니다 다음과 같이 코드 보인다 시간 ...

답변

0

구글에서 첫 링크 : http://eliasbland.wordpress.com/2010/01/25/importerror-settings-cannot-be-imported-because-environment-variable-django_settings_module-is-undefined/)이 람다 스크립트에서 (나를 위해 작동

하지 _ _init _ _.py 파일) :

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

from django.contrib.auth.models import User #import django stuff after 
print User.objects.all() 
+0

어쨌든 고맙습니다. –

+0

예를 추가했습니다. :) – Zashas

+0

동일한 이전 오류, 다니엘스 답장이 올바른 방법이라고 생각하지만 여전히 내 게시물에 설명 된대로 작동하도록 노력하고 있습니다. ... –

1

이 좋아, 그래서 나는 ../sudoku/dv_interface/management/commands/generate_sudoku.py

from django.core.management.base import BaseCommand, CommandError 
from db_interface.models import user 

import random 
import datetime 

class Command(BaseCommand): 
    args = '<poll_id poll_id ...>' 
    help = 'Closes the specified poll for voting' 

    def handle(self, *args, **options): 
     newuser=user(name="name", password="pass", time_registered=datetime.datetime.now(), time_uploaded=datetime.datetime.now(), points=0, saved_sudoku="", solved=False) 
     newuser.save() 

이 같은 스크립트를 만들었지 만 manage.py generate_sudoku.py를 사용할 때 여전히 나에게 알 수없는 명령 오류를 제공합니다

+1

끝에서 ".py"로 명령을 호출 할 필요가 없습니다. –

+0

대단히 감사합니다 :) –