写在前面
这里提到的所有的东西都是在SAE上面实践的,对于其他的平台或者版本可能会有区别,需要注意。
创建工程
在SAE上选择Django框架,创建工程命令如下:
django-admin.py startproject mysite
将其中的文件移到svn目录下面,相等与原来的主目录。接着配置config.yaml文件:
libraries:
- name: "django"
version: "1.4"
下面来看工程结构,他们的功能依次为:
- __init__.py:构建一个目录,然后使得可以通过简单的import引入并访问其中的module
- settings.py:项目的主要配置文件,包括数据库等
- urls.py:匹配urls和python方法
- manage.py:用来管理项目的脚本
在开发的时候需要维护urls.py和setting.py,下面来看具体的开发。
开发功能
缓存
在分布式环境下开发,免不了要用到缓存。在sae中使用memcache时用到的客户端是pylibmc,使用方法可以在这里看到。
数据库
用django中的Model来做数据操作非常方便,在Model中定义好数据类型之后可以用工具脚本来直接建表(因为我事先已经建好了,这个没试过),Model支持的数据类型在这里可以看到。查询、修改、删除可以用QuerySet来做,如果没有一些事件去触发,QuerySet是不会去访问DB的,用法看这里。
静态文件
在django里面用到css、js的时候需要设置静态文件的位置,在config.yaml中设置:
handlers:
- url: /static
static_dir: mysite/static
然后在setting.py中增加:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns();
这样在写template的时候就可以这样使用:
<link href="/static/css/u.css" rel="stylesheet" type="text/css"/>
本地缓存