原文《Using the Google App Engine Helper for Django》来自:http://code.google.com/intl/en/appengine/articles/appengine_helper_for_django.html
一步步来吧,我也是边看边做的,顺便写一些主要的中文放在这里,只写给自己看,其他人还是看看原文的好。也可以参考:http://code.google.com/p/google-app-engine-django/source/browse/trunk/README
一、使用前提:
1、安装了python2.5和GAE SDK
2、有一定的Django基础
二、GAE与Django的两点主要不同:
1、GAE用的是DataStore,并不支持SQL数据库,所以不支持Django的Model。
2、GAE限制了一些Django支持的模块。
GAE Helper for Django会提供相应的替代实现的。
三、获得Helper:
http://code.google.com/p/google-app-engine-django
建议使用Django1.0以上的版本,使用SVN最新分支里的代码。
四、Helper与GAE SDK结合起来:
Helper需要找到SDK的安装路径在哪里,如果在windows下,安装 Python for Windows extensions 就能自动检测安装路径了。
五、测试你的环境:
在命令行下,进入Helper的目录,运行python manage.py runserver
然后访问:http://localhost:8000,就可以看到熟悉的Django欢迎界面了。
(我曾经遇到的一个错误是,我下载SVN上最新版本的,由于GAE SDK目录下的Django的版本不是最新的,运行不下去,后来我将其替代成Django1.0就OK了。有其他提示的话,按照错误的提示来吧。)
It worked!Congratulations on your first Django-powered page.六、创建一个APP
命令行下运行:python manage.py startapp polls这一点跟Django是一样的,会在根目录下产生如下的目录结构:
polls/
init.py
models.py
views.py七、创建你的Model
传统的Django Model在GAE上是不能用的,Helper给了一个类似的替代BaseModel。
from appengine_django.models import BaseModel
from google.appengine.ext import db
class Poll(BaseModel):
question = db.StringProperty()
pub_date = db.DateTimeProperty(‘date published’)
class Choice(BaseModel):
poll = db.ReferenceProperty(Poll)
choice = db.StringProperty()
votes = db.IntegerProperty()八、激活Model
在settings.py里的INSTALLED_APPS添加polls即可,就像在Django里添加一个应用一样。
九、Django的Admin
Django的Admin目前还不能在GAE上用,还是先用 /_ah/admin
来替代吧,可以起这样的一个url http://localhost:8080/_ah/admin
.
十、Views, Forms and URLs
1、urls和views跟GAE的用法一样。
2、Django Form在GAE上是不能用的,可以使用google.appengine.ext.db.djangoforms替代。
Django Versions
十一、
一些冗余的东西:
如果你觉得Django的文件太多,可以删减
django/bin
django/contrib/admin
django/contrib/databrowse
十二、提交应用
可以使用这样的命令:python manage.py update,这相当于GAE的appcfg.py update
同理,你也可以使用rollback
and vacuum_indexes
等命令。
十三、Lauching the WSGI Handlerapp.yaml
和main.py就同GAE SDK的用法一样,不多详述。
十四、Using the Database Backend with App Engine
Helper在后台提供了一个叫appengine的假数据库,你可以用
manage.py运行
reset
和flush命令
。
十五、Settings
运行一下python manage.py diffsettings看看吧。
GAE Helper for Django的使用方法
GAE Helper for Django的使用方法
...