Выполнение проектов Pure Django в Google App Engine - пример zip - django-1.3.1 - PullRequest
0 голосов
/ 21 марта 2012

У меня есть пост здесь , о котором я узнал позже, что Ге переехал сюда.

В основном я попробовал пример с django-nonrel, заменив его django на django-1.3.1, так как я кодировал на нем свое приложение, но он выдает какую-то базовую ошибку, например, не могу найти django.db.utils. Обратите внимание, что я создал символическую ссылку из django -> Django-1.3.1 / django и надеюсь, что проблема не в этом.

Основываясь на ответах, если я пытаюсь использовать версию django-nonrel в своем приложении, аналогичную образцу приложения, я получаю сообщение об ошибке, как показано ниже, как будто он не может найти бэкэнд sqlite3, хотя в своих вариантах он упоминает как один из вариантов. Также снова не найден utils.py.

-> -> ->

Traceback (most recent call last):
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 4143, in _HandleRequest
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 4049, in _Dispatch
    base_env_dict=env_dict)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 616, in Dispatch
    base_env_dict=base_env_dict)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3120, in Dispatch
    self._module_dict)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3024, in ExecuteCGI
    reset_modules = exec_script(handler_path, cgi_path, hook)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2887, in ExecuteOrImportScript
    exec module_code in script_module.__dict__
  File "I:\learn\python\event\djangoappengine\main\main.py", line 97, in <module>
    main()
  File "I:\learn\python\event\djangoappengine\main\main.py", line 56, in real_main
    run_wsgi_app(application)
  File "c:\Program Files\Google\google_appengine\google\appengine\ext\webapp\util.py", line 98, in run_wsgi_app
    run_bare_wsgi_app(add_wsgi_middleware(application))
  File "c:\Program Files\Google\google_appengine\google\appengine\ext\webapp\util.py", line 116, in run_bare_wsgi_app
    result = application(env, _start_response)
  File "I:\learn\python\event\django\core\handlers\wsgi.py", line 265, in __call__
    response = self.get_response(request)
  File "I:\learn\python\event\django\core\handlers\base.py", line 160, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "I:\learn\python\event\django\core\handlers\base.py", line 194, in handle_uncaught_exception
    return debug.technical_500_response(request, *exc_info)
  File "I:\learn\python\event\django\views\debug.py", line 58, in technical_500_response
    html = reporter.get_traceback_html()
  File "I:\learn\python\event\django\views\debug.py", line 109, in get_traceback_html
    frames = self.get_traceback_frames()
  File "I:\learn\python\event\django\views\debug.py", line 228, in get_traceback_frames
    pre_context_lineno, pre_context, context_line, post_context = self._get_lines_from_file(filename, lineno, 7, loader, module_name)
  File "I:\learn\python\event\django\views\debug.py", line 180, in _get_lines_from_file
    source = loader.get_source(module_name)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1538, in Decorate
    return func(self, *args, **kwargs)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2518, in get_source
    full_path, search_path, submodule = self.GetModuleInfo(fullname)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1538, in Decorate
    return func(self, *args, **kwargs)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2482, in GetModuleInfo
    submodule, search_path = self.GetParentSearchPath(fullname)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1538, in Decorate
    return func(self, *args, **kwargs)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2461, in GetParentSearchPath
    parent_package = self.GetParentPackage(fullname)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1538, in Decorate
    return func(self, *args, **kwargs)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2437, in GetParentPackage
    if self.find_module(fullname) is None:
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1538, in Decorate
    return func(self, *args, **kwargs)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2045, in find_module
    search_path)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1538, in Decorate
    return func(self, *args, **kwargs)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2375, in FindAndLoadModule
    description)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1538, in Decorate
    return func(self, *args, **kwargs)
  File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2318, in LoadModuleRestricted
    description)
  File "I:\learn\python\event\django\db\__init__.py", line 77, in <module>
    connection = connections[DEFAULT_DB_ALIAS]
  File "I:\learn\python\event\django\db\utils.py", line 91, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "I:\learn\python\event\django\db\utils.py", line 49, in load_backend
    raise ImproperlyConfigured(error_msg)
ImproperlyConfigured: 'django.db.backends.sqlite3' isn't an available database backend. 
Try using django.db.backends.XXX, where XXX is one of:
    'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3'
Error was: cannot import name utils

какая версия django совместима с django-nonrel или мне нужно заниматься разработкой, используя django-nonrel вместо Django-1.3.1?

Когда я читаю больше на django-nonrel Я чувствую, что для кода django требуется немного изменений. Не просто использовать проект таким, какой он есть. Мне нужно создать абстрактный класс суперкласса, и он не поддерживает множество полей, которые я использую в своем проекте.

Полагаю, кто-то подтвердит это ограничение, и, возможно, я смогу закрыть эту ветку.

28 марта

Я удалил M2M из своего приложения. Это была очень незначительная вещь, только что прокомментировал M2M поле. Теперь я установил python2.7.2, gae 1.6.4 и djangoappengine выдает ошибку, как показано ниже:

E:\learn\python\event>python manage.py runserver
WARNING:root:E:\software\Google\google_appengine\lib\cacerts\urlfetch_cacerts.tx
t missing; without this urlfetch will not be able to validate SSL certificates.
Traceback (most recent call last):
  File "manage.py", line 4, in <module>
    import settings # Assumed to be in the same directory.
  File "E:\learn\python\event\settings.py", line 4, in <module>
    from djangoappengine.settings_base import *
  File "E:\learn\python\event\djangoappengine\settings_base.py", line 6, in <mod
ule>
    setup_env()
  File "E:\learn\python\event\djangoappengine\boot.py", line 69, in setup_env
    setup_project()
  File "E:\learn\python\event\djangoappengine\boot.py", line 123, in setup_proje
ct
    from .utils import have_appserver, on_production_server
  File "E:\learn\python\event\djangoappengine\utils.py", line 14, in <module>
    default_partition='dev')[0]
TypeError: LoadAppConfig() got an unexpected keyword argument 'default_partition
'

С уважением,

Miten.

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Вы не можете просто заменить версию Django на nonrel.На самом деле это форк Django с множеством настроек.

0 голосов
/ 21 марта 2012

Django-1.3.1 / Модели базы данных Django не работают в Google App Engine.

Django-nonrel реализует бэкэнд, чтобы модели Django работали в Google App Engine.

Так что, если вы хотите использовать модели Django, вы должны использовать Django-nonrel. В противном случае вы можете использовать Django для шаблонов / форм, но вам нужно использовать модели на основе Google App Engine db.Model или ndb.Model.

...