目前SAE上预置了多个版本的Django,默认的版本为1.2.7,在本示例中我们使用1.4版本。
创建一个新的Python应用,检出SVN代码到本地目录并切换到应用目录。
创建一个Django project:mysite。
jaime@westeros:~/pythondemo$ django-admin.py startproject mysite
jaime@westeros:~/pythondemo$ ls mysite
manage.py mysite/
重命名该project的根目录名为1,作为该应用的默认版本代码目录。
jaime@westeros:~/pythondemo$ mv mysite 1
在默认版本目录下创建应用配置文件config.yaml,在其中添加如下内容:
libraries:
- name: "django"
version: "1.4"
创建文件index.wsgi,内容如下
importsaefrommysiteimportwsgiapplication=sae.create_wsgi_app(wsgi.application)
最终目录结构如下
jaime@westeros:~/pythondemo$ ls 1
config.yaml index.wsgi manage.py mysite/
jaime@westeros:~/pythondemo/1$ ls 1/mysite
__init__.py settings.py urls.py views.py
部署代码,访问http://.sinaapp.com,就可看到Django的欢迎页面了。
按以上部署后,提示:
Traceback (most recent call last):
File "/usr/local/sae/python/lib/python2.7/site-packages/sae/__init__.py", line 18, in new_app
return app(environ, start_response)
File "/usr/local/sae/python/3rd/django-1.4/django/core/handlers/wsgi.py", line 219, in __call__
self.load_middleware()
File "/usr/local/sae/python/3rd/django-1.4/django/core/handlers/base.py", line 51, in load_middleware
raise exceptions.ImproperlyConfigured('Middleware module "%s" does not define a "%s" class' % (mw_module, mw_classname))
ImproperlyConfigured: Middleware module "django.contrib.auth.middleware" does not define a "SessionAuthenticationMiddleware" class
按
https://github.com/sinacloud/sae-python-dev-guide/tree/master/examples/django/1.2.7
内容更改 index.wsgi settings.py 文件
提示mysql数据库错误
去sae管理应用更新数据库配置,并选择xx引擎
提示:Error was: No module named mysql.base
'ENGINE': 'mysql'
改为
'ENGINE': 'django.db.backends.mysql'
注释掉了urls中的admin,可以正常运行。