以下是 Django 官网 Tutorial 的笔记。
Create project:
E:\MyDoc\DjangoFiles> set PATH=%PATH%;F:\Software\Python27\Scripts
E:\MyDoc\DjangoFiles> django-admin.py startproject mysite (在命令执行的当前目录下生成polls目录结构)
Start project server:
python manage.py runserver (默认绑定8000端口,可用"python manage.py runserver 8001"指定其它server端口号)
Verify: http://localhost:8000
Datebase setup:
mysite.settings.py: DATABASES = ...
and TIME_ZONE = ...
manage syncdb (为project级应用建立数据表)
create app:
python manage.py startapp polls (在命令执行的当前目录下生成polls目录结构)
mysite.settings.py: INSTALLED_APPS = ( ..., 'polls')
定义数据模型
polls.models.py: class Poll(models.Model): ...
python manage.py sql polls (显示生成数据库的脚本)
python manage.py syncdb (执行生成数据库的脚本)
可用python manage.py shell查看数据模型;
url到python函数的过程
-
mysite.settings.py: ROOT_URLCONF = 'mysite.urls'
-
mysite.urls.py: urlpatterns = patterns('',
url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), ...)
-
polls.views.py中的detail(回调)函数,返回一个HttpResponse对象,其中可以指定模板, 模板根目录在mysite.settings.py.TEMPLATE_DIRS中设置, polls.views.py中的模板参数是模板文件的相对路径(相对于模板根目录)。
整体而言,对于一个app来说,其MVC过程是:models -> urls -> views -> templates, 当采用 generic views 的时候,MVC 过程变为:models -> urls -> templates。
设计思想
-
Project 由一组配置和一些app组成,二者之间是多对多关系,app可以复用于多个项目;
-
在 Django 的MVC结构中,model 代表数据抽象,处理数据库相关事务,view 是展现层;
-
客户端从服务端获取数据用 GET,提交数据用 POST;
-
MVC in Django: model, template, view