在App Engine下运行Django 1.2
我不知道App Engine是从什么时候开始默认支持Django 1.2的,好像支持的时间不长,我懒得去求证了,反正你去下载最新的SDK准支持,保准支持。要在App Engine下运行Django通常有两种方法:一种是使用django-nonrel,它是django的一个nosql分支,它可能不太稳定,但如果你要将已有应用移植到app engine上,这是最快捷的方法,你仍然可以使用django的models, forms,应用几乎不需要改动,当然由于两者使用不同类型的数据库,数据存储模型可能要针对app engine微调一下。第二种方法就是使用标准的django,这种方法的缺点是不能再使用django的models,app engine有一套自己的数据模型。这里讨论后一种方法。
虽然app engine自带django,但使用django并不那么简单,当然这么大众的问题早就已经有解决方案了,那就是google-app-engine-django,从这里下载压缩包,将它解压。
将解压的目录appengine_helper_for_django改成你应用的名称,例如shared-accounting,同时修改app.yaml中application的值为应用名称。appengine helper最多只支持django 1.1,要支持1.2需要修改它的源代码。编辑appengine_django目录下的__init__.py,在171行将它改成(在'1.1'前面加上'1.2'):
AUTHENTICATION_BACKENDS = ( "your authentication backend",)