Django приложение с движком приложения на Windows - PullRequest
0 голосов
/ 30 ноября 2009

Я пытаюсь установить движок приложения с django 1.1 на windows.

При запуске движка приложения появляется следующая ошибка: http://slexy.org/view/s21oLrbkHh

Шаги, которые я делаю: 1.) Создать новое приложение через панель запуска 2.) Скопируйте мой код (который является пустым проектом django)

Мой код main.py прилагается ниже. Я падаю на строку: "import django.db", что я могу успешно сделать из cmd.

У тебя есть идея?

main.py:

\# main.py

import os, sys
os.environ["DJANGO\_SETTINGS\_MODULE"] = "taskhood.settings"
sys.path.append("/home/brox/tmp/mashname")

\# Google App Engine imports.

from google.appengine.ext.webapp import util

\# Django version 

from google.appengine.dist import use_library
use_library('django', '1.1')

\# Force Django to reload its settings.

from django.conf import settings
settings._target = None

import django.core.handlers.wsgi
import django.core.signals
import django.db
import django.dispatch.dispatcher

def log_exception(*args, **kwds):
   logging.exception('Exception in request:')

\# Log errors.

django.dispatch.Signal.connect(    
   django.core.signals.got_request_exception, 
   log_exception)  

\# Unregister the rollback event handler. 

django.dispatch.Signal.disconnect(     
   django.core.signals.got_request_exception,     
   django.db._rollback_on_exception)

def main():
    # Create a Django application for WSGI.
    application = django.core.handlers.wsgi.WSGIHandler()
    # Run the WSGI CGI handler with that application.
    util.run_wsgi_app(application)

if __name__ == "__main__":
    main()

Ответы [ 4 ]

2 голосов
/ 30 ноября 2009

Как уже отмечали другие, вы не можете использовать ORM Джанго в AppEngine. Однако очевидно, что вы следуете некоторым инструкциям для импорта django.db, чтобы отключить некоторые сигналы. Сообщение об ошибке показывает вам проблему: библиотека sqlite3 не установлена ​​в вашей системе.

Обычно это происходит вместе с Python версии 2.5 и выше, поэтому вы должны иметь его как часть вашей установки 2.6, но, возможно, у вас минимальная установка по какой-то причине. Попробуйте установить одну из полных версий Python с python.org или ActiveState, или вы можете просто установить библиотеку pysqlite2.

0 голосов
/ 30 ноября 2009

Убедитесь, что ваша конфигурация БД в вашем settings.py пуста:

DATABASE_ENGINE = ''           
DATABASE_NAME = ''             
DATABASE_USER = ''             
DATABASE_PASSWORD = ''         
DATABASE_HOST = ''             
DATABASE_PORT = ''             

Наряду со следующим:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
)

INSTALLED_APPS = (
    'django.contrib.contenttypes',
    'django.contrib.sites',
)

Выше приведен минимум для запуска Django в GAE за вычетом администратора.

Я использую следующие main.py в двух разных Django для проектов GAE, и они отлично работают:

import logging, os, sys
from google.appengine.dist import use_library
use_library('django', '1.1')

# Must set this env var *before* importing any part of Django
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

# Google App Engine imports.
from google.appengine.ext.webapp import util

# Remove the standard version of Django.
for k in [k for k in sys.modules if k.startswith('django')]:
  del sys.modules[k]

# Force sys.path to have our own directory first, in case we want to import
# from it.
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))

import django.core.handlers.wsgi
import django.db


def main():
  # Create a Django application for WSGI.
  application = django.core.handlers.wsgi.WSGIHandler()

  # Run the WSGI CGI handler with that application.
  util.run_wsgi_app(application)

if __name__ == '__main__':
  main()
0 голосов
/ 30 ноября 2009

Зачем вам нужен django.db? Как вы предлагаете использовать его? Я предполагаю, что Django ищет sqlite и не может его найти? Может быть, если вы установите его, ошибка будет идти.

0 голосов
/ 30 ноября 2009

Django 1.1 не является версией по умолчанию в App Engine, используйте 0,96 вместо или укажите, что вы хотите использовать 1.1. См. эту статью о коде Goodle .

В связи с этим модели необходимо адаптировать, поскольку у App Engine нет обычной (sql) базы данных. Это также описано по данной ссылке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...