浏览 5608 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-19
很久以前就在注册了GAE,好像只有联通的GSM号才能注册,幸好上次卡丢了后办了张联通的。 言归正传,GAE自带的django是0.96版,我是追新一族,既然有1.0干嘛不用呢。官方原来有一篇文章介绍如何引入django开发版到GAE的,同样适用于1.0,具体是把django解压到自己的应用目录下,然后在main.py加几行代码禁用0.96并引入新版本,不过那篇文章有两行代码没有缩进,问题不大。但是这个方法不太好,由于GAE有1000个文件数量限制,django的文件太多,精简后还有400多,万一以后要引入javascript、css库或者写的程序文件多了就不好办了。 原文找不到了,今天搜索的时候发现官方又出来一篇文章 ,介绍把django压缩包放到应用目录下然后用zipimport引入到GAE。由于GAE还限制单个文件不能超过1M,所以必须精简django,推荐删除以下文件:
压缩一下就只有649KB了,好将这个压缩包放到自己的应用目录下 然后就是改main.py了 import logging, os, sys # 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. if os.name=='nt': os.unlink=lambda :None # Add Django 1.0 archive to the path. django_path = 'django.zip' sys.path.insert(0, django_path) # Must set this env var *before* importing any part of Django os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 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.dispatcher.connect(log_exception, django.core.signals.got_request_exception) # Unregister the rollback event handler. django.dispatch.dispatcher.disconnect(django.db._rollback_on_exception,django.core.signals.got_request_exception) def main(): # Re-add Django 1.0 archive to the path, if needed. if django_path not in sys.path: sys.path.insert(0, django_path) # 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() 接下来就可以写自己的应用了 P.S.:已知一个bug,使用压缩包的话无法使用国际化即设置的语言,有空我发到Google group上去反映一下。其实这个方法和以前是一样的,只不过django_path不同罢了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-24
hi 你好 我想知道django_path具体怎么修改呢?
我还没有转到1.0 用的还是自带的 0.96, 想问下现在1.0运行在GAE上成熟么? 有没有什么严重的缺陷? |
|
返回顶楼 | |
发表时间:2008-11-25
我还没有试过在gae上用django,我现在想知道的是有哪些django的模块是没法用的
|
|
返回顶楼 | |
发表时间:2008-11-25
范三山 写道 我还没有试过在gae上用django,我现在想知道的是有哪些django的模块是没法用的 Feeds就不太好用:( 正苦恼这个.. 还有admin... |
|
返回顶楼 | |
发表时间:2008-11-25
如果连admin都没法用了那还有什么意思,google也不想点办法,太没诚意了
|
|
返回顶楼 | |
发表时间:2008-12-08
我比较喜欢django的url映射,不过不能用admin的确是最为可惜之处
|
|
返回顶楼 | |
发表时间:2008-12-09
正好在整这个东西。
在windows下会有问题,提示 'module' object has no attribute 'unlink' 在网上看了下GAE将os的unlinlk给禁用了。 需要做点修改。 在main.py里加上 if os.name == 'nt': os.unlink = lambda: None |
|
返回顶楼 | |