【问题标题】:Trying Django tutorial with djangoappengine使用 djangoappengine 尝试 Django 教程
【发布时间】:2012-09-10 13:16:00
【问题描述】:

我正在尝试使用 djangoappengine 实现 Django 的投票应用教程。

我采取的步骤:
1)复制工作区文件夹中的测试应用程序。

2) 复制 django-toolbox、dbindexer、django、djangoappengine、autoload,按照网站 http://www.allbuttonspressed.com/projects/djangoappengine 的指示,在“test-app”文件夹中。

3) 在 Eclipse 中启动了一个新项目 PyDev Google App Engine Project,并将 test-app 作为工作文件夹。

4) 现在我使用终端在 GAE 上部署了应用程序

$ python manage.py deploy

在 x.appspot.com 上获得“It Works”页面。

5) 现在我尝试按照教程中的指示制作一个投票应用程序

python manage.py startapp 投票

文件夹“polls”由四个文件创建

6) 我编辑了投票的 model.py 文件并添加了 tutorial-1 中提到的代码 然后我运行命令-

$ python manage.py syncdb

它没有显示错误,但没有创建新的投票表。 我在settings.py的“Installed_Apps”下添加了“polls”
我认为问题出在数据库声明中,它是 dbindexer 而不是 django.db.backends.sqlite3,但我不确定。

当我在 shell 中运行时也有错误

>>> from django.utils import timezone
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: cannot import name timezone 

我还有一些疑问,但我会在解决上述问题后提及。

【问题讨论】:

  • 我找到了时区问题的原因(时区需要 django > 1.3.1)。请解决syncdb问题
  • 好的,我知道了。它已经创建了表格,但由于它没有在管理员中显示,所以我遇到了问题。然后我意识到我没有在 admins.py 中注册投票。

标签: google-app-engine django-models djangoappengine


【解决方案1】:

Django 教程是为最新版本的 django 编写的。据我记得,时区是在 1.3 左右添加到 django.utils 中的?你能检查一下你有什么版本的Django吗?当前版本是 1.41。

【讨论】:

  • 你可以试试(检查django是否被python拾取): import django (enter) print django.get_version() (enter)
  • 它显示的是 1.3.1,但我安装了 Django 1.4.1 我猜是因为 GAE SDK 捆绑了 Django 1.3。
【解决方案2】:

根据this page for App Engine 3rd Party support in Python 2.7

https://developers.google.com/appengine/docs/python/tools/libraries27

App 引擎仅支持以下版本:

“1.2”

“1.3”

“最新”

所以我认为你不能使用 1.41。

这里有关于 Django 使用的进一步说明:

https://developers.google.com/appengine/docs/python/tools/libraries27#django

要将 Django 与 NDB 存储 API 一起使用,请将“google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware”添加到 Django settings.py 文件的 MIDDLEWARE_CLASSES 条目中。

你的 app.yaml 中有这样的条目吗?

libraries:
- name: django
  version: "1.3"

你做过吗?

要将 Django 与 NDB 存储 API 一起使用,请将“google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware”添加到 Django settings.py 的 MIDDLEWARE_CLASSES 条目中

【讨论】:

  • 库:-名称:django 版本:“最新”
  • 我相信它仍然只会给你 1.3,因为那是 GAE 支持的“最新”版本。
  • 发行说明确认,1.3 最高。 code.google.com/p/googleappengine/wiki/… "Django 1.3 现在可以在 Python 2.7 运行时使用。"
猜你喜欢
  • 2012-01-19
  • 2018-06-18
  • 2017-05-30
  • 1970-01-01
  • 2015-03-16
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多