SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Django
-- 完美主义者快速开发之选




                 By Jetway
                 from HDU_CloudCenter
                 --2012/3/28
历史
• 许多年前,劳伦斯出版集团需要开发一个
  以新闻内容为主的网站。

• 众所周知,对于新闻网站来说,需求变化
  很快,互动性也很高
历史
• 于是, world online 的三位工程师使用
  python 开发了 Django 。这套框架是以比利
  时的吉普赛爵士吉他手 Django Reinhardt
  来命名的。



Jacob Kaplan-Moss   Adrian Holovaty   Simon Willison
@jacobian           @adrianholovaty   @simonw
设计哲学
• Django 的主要目的是简便、快速地开发数
  据库驱动的网站——动态网站。
• Django 强调代码复用,多个组件可以方便
  地以“插件”形式服务于整个框
  架, Django 有许多功能强大的第三方插件
  。
• Django 强调快速开发, DRY
• 基于 MVC (更确切的说是 MTV )
为什么是 python
• 我想可能是一下几点:
1 、 oop
2 、 module 机制,松耦合,模块插入方便
3 、代码简洁
4 、功能强大,模块多

总结起来: python 技术就是 django 技术
为什么要快速开发
• 如果我们只考虑时间代价,时间短往往意
  味着客户更满意




         Time
为什么要快速开发
• 并且你还可以有余力开发第二个版本




         Time
Django 应用
• 最著名的当然就是 Google AppEngine
• 基于 Django
• Django 应用可以很方便地在它上面部署
Django 开发工具
• 非得用 IDE 的话,我推荐 PyCharm

• 本人喜欢 txt 文本直接编辑
预备知识
• Python 基础知识
• Html 和 css 一点点,其他前端技术知道更
  好
• 数据库一点点
• 正则表达式一点点
构建一个 BLOG
• 1 、安装 python
     建议使用 python2.7
     下载地址:
  http://www.python.org/getit/releases/2.7/
  windows 下安装比较简单,只需一直下一
  步,最后导出环境变量就好了:
 c:Python27;c:Python27scripts;
构建一个 BLOG
• 2 、安装 Django
下载地址:
https://www.djangoproject.com/download/
直接将下载的 Django-1.3.1.tar.gz 解压
  python 的安装目录下,在 cmd 中进入该目
  录,输入:
      python setup.py install
最后,把 C:Python27Scripts 加入环境变量
  PATH 中
构建一个 BLOG
• 3 、创建项目
输入:
python D:Python27Scriptsdjango-admin.py startproject myblog
然后我们就可以看到:
构建一个 BLOG
• 说明:
• __init__.py 用于打包 python 工程
• manage.py 文件是 Django 中的一个工具
• setting.py 文件包含了项目的默认设置。包
  括了数据库信息、调试标志以及其他一些
  重要的变量。
• urls.py 文件在 django 里叫 URLconf ,将
  URL 映射到你应用程序的配置文件。
构建一个 BLOG
• 4 、运行开发服务器:
在 myblog 目录下,输入:
python manage.py runserver
然后在浏览器中输入:
127.0.0.1:8000
构建一个 BLOG
• 5 、创建 blog 应用
在 myblog 目录下,输入:
Python manage.py startapp blog
构建一个 BLOG
• 6 、在 setting.py 文件中,找到
  INSTALLED_APPS 元组,加入以下行:
      ‘myblog.blog’,
构建一个 BLOG
• 7 、设计 model ,
在 models.py 文件中输入:
from django.db import models

class BlogPost(models.Model):
   title = models.CharField(max_length = 150)
   body = models.TextField()
   timestamp = models.DateTimeField()
构建一个 BLOG
• 8 、设置数据库
我使用的是 mysql ,并且建立了 djangodb 数
  据库。所以在 setting.py 中,加入:
  'ENGINE': 'mysql',
  'NAME': 'djangodb',
  'USER': 'root',
  'PASSWORD': '123456',
  'HOST': 'localhost',
  'PORT': '',
构建一个 BLOG
• 9 、创建表:
输入: python manage.py syncdb
构建一个 BLOG
• 10 、设置自动 admin 应用
打开 setting.py , INSTALLED_APPS 里加
  入:
'django.contrib.admin',

然后,命令行中输入:
Python manage.py syncdb
构建一个 BLOG
• 11 、设置 urls.py
只要去除以下行的 # 就可以了:
#from django.contrib import admin
#url(r'^admin/', include(admin.site.urls)),
12 、最后就是告诉 django ,在 admin 窗口
  里显示哪一个 model ,只需在 model.py 中
  加入以下行:
from django.contrib import admin
admin.site.register(BlogPost)
构建一个 BLOG
• 13 、运行
python manage.py runserver
在浏览器里输入:
127.0.0.1:8000/admin/
动态网站
•   用户向 web 服务器请求一个文档
•   Web 服务器随即获取或生成这个文档
•   服务器再把结果返回给浏览器
•   浏览器将这个文档渲染出来
MVC
MVC
• MVC 把 web 分为数据模型,控制器和视图
  三层,可以使业务逻辑与数据表现分开;
  说白了,美工搞美工的,后台搞后台的,
  互不干扰,发挥各自优势
Django 是 MTV 分层
• Django 遵循了 MVC ( model-view-
  controller )这个分层方式,但是确切的说
  是 MTV 分层。
• Mmodel ,数据模型
• Ttemplate ,模板
• Vview ,视图
Django 是 MTV 分层
• Model 层
1 、使用的是 ORM
2 、我们所能控制的就是 models.py 文件
3 、负责数据库管理
Django 是 MTV 分层
• models.py 文件
1 、我的理解是,一个类对应数据库的一张
  表
2 、前面构件 blog 时:
from django.db import models # 导入内置数据库处理模块

class BlogPost(models.Model):
   title = models.CharField(max_length = 150) # 标题
   body = models.TextField()                # 正文
   timestamp = models.DateTimeField() # 时间戳
admin.site.register(BlogPost)      # 注册要管理的数据对
Django 是 MTV 分层
• Template 层
1 、负责怎么样显示数据
2 、说白了,就是利用一些格式化的 html 文
  件,使数据按照要求显示(显示在哪里,
  怎么显示等等)
3 、需要在工程目录下,建立 templates 文件
  夹,然后在 setting.py 中设置好 templates
  目录的路径。然后在此目录中建立所需
  html 文件。
Django 是 MTV 分层
• 在之前的 blog 应用中,我们要制作一个显
  示所有 blog 条目( title )的页面。
• list.html
<html><body>
<h1> 博客条目列表: </h1>
{% for list in title_array %}
<p> list.item_title </p>
</body></html>
Django 是 MTV 分层
• View 层
1 、 django 中的 view 层是用于控制要显示什
  么数据
2 、我们能看到的就是 views.py 文件
Django 是 MTV 分层
• views.py (可以是任意名字)
既然是要控制显示的数据,那么要显示之前
  的 blog 数据呢?比如列出所有的 title
from django.shortcuts import render_to_response
from myblog.blog.models import BlogPost

def list_title(request):
  title_array = []
  for title_data in BlogPost.objects.all():
      title_da = {}
      title_da[“item_title”] = title_data.title
      title_array.append( title_da )
  return render_to_response(‘list.html’, {‘title_array’ : title_array})
Django 是 MTV 分层
• 最后就差 URLconf 把模型,模板和视图串
  联起来了。
• 在 urls.py 文件中:
from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
   url(r'^admin/', include(admin.site.urls)),
   url(r‘list/$’, ‘myblog.blog.views’),
)
Django 是 MTV 分层
• 好吧,列出 title 的网页算是完成了
• 在浏览器中输入 127.0.0.1:8000/list
• Django 会根据 urls.py 文件找到 myblog 文
  件夹下 blog 目录中的 views.py 文件中
  list_title 函数,然后根据 model.py 文件找
  到数据库中 BlogPost 表中 title 列,并输出
  到 list.html 文件中,最后浏览器渲染出我们
  所需的网页。
Django 的过程
Django 的过程
• Web 服务器收到一个 http 请求
• Django 把 web 服务器传过来的请求转换成一个
  请求对象
• Django 在 URLconf 里查找正确的视图函数
• 调用这个视图函数,参数为请求对象以及任何捕
  捉到的 URL 参数
• 然后视图会创建并返回一个响应对象
• Django 将这个响应对象转换成 web 服务器可以
  理解的格式
• Web 服务器将响应发送给客户端
Django 一些可重用的模块
• Django 提供了很多可重用的模块
• Django 的 modules 机制是松耦合的,也就
  是说你可以很方便的插入这些模块
• 减少了多余的编写代码工作
Django 一些可重用的模块
django-ratings         django-ajax-validation   django-google-analytics   django-mailer
                                                django-email-
django-queue-service   django-announcements                               django-jits
                                                confirmation
django-liveblogging    django-atompub           django-discussion         django-galaxy

django-messages        django-audioplayer       django-db-log             django-evolution

                                                                          django-dynamic-media-
django-authopenid      django-googlemap         django-compress
                                                                          serve

django-avatar          django-graphs            django-oembed             django-clevercss

                                                django-object-view-
django-basic-blog      django-microformats                                django-chunks
                                                tracking

django-basic-library   django-tagging           django-navbar             django-ads

django-basic-people    django-survey            django-orm-cache          django-rest-interface

django-basic-places    django-voting            django-page-cms           django-registration

django-cron            django-wiki              django-photologue         django-mobileadmin

django-favorites       satchmo                  django-pingback           django-openid

django-forum           sorl-thumbnail           django-pressroom          django-oauth

django-gcal            django-mailfriend        django-mmo                django-recommender
资料
• Django book
• 《 django web 开发指南》
• https://www.djangoproject.com/
Thank you !
• Q&A

Weitere ähnliche Inhalte

Ähnlich wie Django入门

Django development
Django developmentDjango development
Django developmentloveyudu
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)FLASH开发者交流会
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用勇浩 赖
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京Joseph Chiang
 
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代scott liao
 
Django
DjangoDjango
DjangoTao He
 
Clojure cnclojure-meetup
Clojure cnclojure-meetupClojure cnclojure-meetup
Clojure cnclojure-meetupsunng87
 
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱84zhu
 
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2Yang FaFa
 
Django敏捷开发 刘天斯
Django敏捷开发 刘天斯Django敏捷开发 刘天斯
Django敏捷开发 刘天斯liuts
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構Mu Chun Wang
 
HTML5概览
HTML5概览HTML5概览
HTML5概览Adam Lu
 
DrupalCamp Taipei 2012 迷人的有「型」網站
DrupalCamp Taipei 2012 迷人的有「型」網站DrupalCamp Taipei 2012 迷人的有「型」網站
DrupalCamp Taipei 2012 迷人的有「型」網站Hipfox
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门Xiujun Ma
 
Python crawling tutorial
Python crawling tutorialPython crawling tutorial
Python crawling tutorialChen-Ming Yang
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CDChen-Tien Tsai
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用謝 宗穎
 
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒Shanda innovation institute
 

Ähnlich wie Django入门 (20)

Django step0
Django step0Django step0
Django step0
 
Django development
Django developmentDjango development
Django development
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
 
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
 
Django
DjangoDjango
Django
 
Clojure cnclojure-meetup
Clojure cnclojure-meetupClojure cnclojure-meetup
Clojure cnclojure-meetup
 
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
 
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
 
Django敏捷开发 刘天斯
Django敏捷开发 刘天斯Django敏捷开发 刘天斯
Django敏捷开发 刘天斯
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
 
DrupalCamp Taipei 2012 迷人的有「型」網站
DrupalCamp Taipei 2012 迷人的有「型」網站DrupalCamp Taipei 2012 迷人的有「型」網站
DrupalCamp Taipei 2012 迷人的有「型」網站
 
Html5
Html5Html5
Html5
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
 
Python crawling tutorial
Python crawling tutorialPython crawling tutorial
Python crawling tutorial
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用
 
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
 

Django入门

  • 1. Django -- 完美主义者快速开发之选 By Jetway from HDU_CloudCenter --2012/3/28
  • 2. 历史 • 许多年前,劳伦斯出版集团需要开发一个 以新闻内容为主的网站。 • 众所周知,对于新闻网站来说,需求变化 很快,互动性也很高
  • 3. 历史 • 于是, world online 的三位工程师使用 python 开发了 Django 。这套框架是以比利 时的吉普赛爵士吉他手 Django Reinhardt 来命名的。 Jacob Kaplan-Moss Adrian Holovaty Simon Willison @jacobian @adrianholovaty @simonw
  • 4. 设计哲学 • Django 的主要目的是简便、快速地开发数 据库驱动的网站——动态网站。 • Django 强调代码复用,多个组件可以方便 地以“插件”形式服务于整个框 架, Django 有许多功能强大的第三方插件 。 • Django 强调快速开发, DRY • 基于 MVC (更确切的说是 MTV )
  • 5. 为什么是 python • 我想可能是一下几点: 1 、 oop 2 、 module 机制,松耦合,模块插入方便 3 、代码简洁 4 、功能强大,模块多 总结起来: python 技术就是 django 技术
  • 8. Django 应用 • 最著名的当然就是 Google AppEngine • 基于 Django • Django 应用可以很方便地在它上面部署
  • 9. Django 开发工具 • 非得用 IDE 的话,我推荐 PyCharm • 本人喜欢 txt 文本直接编辑
  • 10. 预备知识 • Python 基础知识 • Html 和 css 一点点,其他前端技术知道更 好 • 数据库一点点 • 正则表达式一点点
  • 11. 构建一个 BLOG • 1 、安装 python 建议使用 python2.7 下载地址: http://www.python.org/getit/releases/2.7/ windows 下安装比较简单,只需一直下一 步,最后导出环境变量就好了: c:Python27;c:Python27scripts;
  • 12. 构建一个 BLOG • 2 、安装 Django 下载地址: https://www.djangoproject.com/download/ 直接将下载的 Django-1.3.1.tar.gz 解压 python 的安装目录下,在 cmd 中进入该目 录,输入: python setup.py install 最后,把 C:Python27Scripts 加入环境变量 PATH 中
  • 13. 构建一个 BLOG • 3 、创建项目 输入: python D:Python27Scriptsdjango-admin.py startproject myblog 然后我们就可以看到:
  • 14. 构建一个 BLOG • 说明: • __init__.py 用于打包 python 工程 • manage.py 文件是 Django 中的一个工具 • setting.py 文件包含了项目的默认设置。包 括了数据库信息、调试标志以及其他一些 重要的变量。 • urls.py 文件在 django 里叫 URLconf ,将 URL 映射到你应用程序的配置文件。
  • 15. 构建一个 BLOG • 4 、运行开发服务器: 在 myblog 目录下,输入: python manage.py runserver 然后在浏览器中输入: 127.0.0.1:8000
  • 16. 构建一个 BLOG • 5 、创建 blog 应用 在 myblog 目录下,输入: Python manage.py startapp blog
  • 17. 构建一个 BLOG • 6 、在 setting.py 文件中,找到 INSTALLED_APPS 元组,加入以下行: ‘myblog.blog’,
  • 18. 构建一个 BLOG • 7 、设计 model , 在 models.py 文件中输入: from django.db import models class BlogPost(models.Model): title = models.CharField(max_length = 150) body = models.TextField() timestamp = models.DateTimeField()
  • 19. 构建一个 BLOG • 8 、设置数据库 我使用的是 mysql ,并且建立了 djangodb 数 据库。所以在 setting.py 中,加入: 'ENGINE': 'mysql', 'NAME': 'djangodb', 'USER': 'root', 'PASSWORD': '123456', 'HOST': 'localhost', 'PORT': '',
  • 20. 构建一个 BLOG • 9 、创建表: 输入: python manage.py syncdb
  • 21. 构建一个 BLOG • 10 、设置自动 admin 应用 打开 setting.py , INSTALLED_APPS 里加 入: 'django.contrib.admin', 然后,命令行中输入: Python manage.py syncdb
  • 22. 构建一个 BLOG • 11 、设置 urls.py 只要去除以下行的 # 就可以了: #from django.contrib import admin #url(r'^admin/', include(admin.site.urls)), 12 、最后就是告诉 django ,在 admin 窗口 里显示哪一个 model ,只需在 model.py 中 加入以下行: from django.contrib import admin admin.site.register(BlogPost)
  • 23. 构建一个 BLOG • 13 、运行 python manage.py runserver 在浏览器里输入: 127.0.0.1:8000/admin/
  • 24. 动态网站 • 用户向 web 服务器请求一个文档 • Web 服务器随即获取或生成这个文档 • 服务器再把结果返回给浏览器 • 浏览器将这个文档渲染出来
  • 25. MVC
  • 26. MVC • MVC 把 web 分为数据模型,控制器和视图 三层,可以使业务逻辑与数据表现分开; 说白了,美工搞美工的,后台搞后台的, 互不干扰,发挥各自优势
  • 27. Django 是 MTV 分层 • Django 遵循了 MVC ( model-view- controller )这个分层方式,但是确切的说 是 MTV 分层。 • Mmodel ,数据模型 • Ttemplate ,模板 • Vview ,视图
  • 28. Django 是 MTV 分层 • Model 层 1 、使用的是 ORM 2 、我们所能控制的就是 models.py 文件 3 、负责数据库管理
  • 29. Django 是 MTV 分层 • models.py 文件 1 、我的理解是,一个类对应数据库的一张 表 2 、前面构件 blog 时: from django.db import models # 导入内置数据库处理模块 class BlogPost(models.Model): title = models.CharField(max_length = 150) # 标题 body = models.TextField() # 正文 timestamp = models.DateTimeField() # 时间戳 admin.site.register(BlogPost) # 注册要管理的数据对
  • 30. Django 是 MTV 分层 • Template 层 1 、负责怎么样显示数据 2 、说白了,就是利用一些格式化的 html 文 件,使数据按照要求显示(显示在哪里, 怎么显示等等) 3 、需要在工程目录下,建立 templates 文件 夹,然后在 setting.py 中设置好 templates 目录的路径。然后在此目录中建立所需 html 文件。
  • 31. Django 是 MTV 分层 • 在之前的 blog 应用中,我们要制作一个显 示所有 blog 条目( title )的页面。 • list.html <html><body> <h1> 博客条目列表: </h1> {% for list in title_array %} <p> list.item_title </p> </body></html>
  • 32. Django 是 MTV 分层 • View 层 1 、 django 中的 view 层是用于控制要显示什 么数据 2 、我们能看到的就是 views.py 文件
  • 33. Django 是 MTV 分层 • views.py (可以是任意名字) 既然是要控制显示的数据,那么要显示之前 的 blog 数据呢?比如列出所有的 title from django.shortcuts import render_to_response from myblog.blog.models import BlogPost def list_title(request): title_array = [] for title_data in BlogPost.objects.all(): title_da = {} title_da[“item_title”] = title_data.title title_array.append( title_da ) return render_to_response(‘list.html’, {‘title_array’ : title_array})
  • 34. Django 是 MTV 分层 • 最后就差 URLconf 把模型,模板和视图串 联起来了。 • 在 urls.py 文件中: from django.conf.urls.defaults import patterns, include, url from django.contrib import admin urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r‘list/$’, ‘myblog.blog.views’), )
  • 35. Django 是 MTV 分层 • 好吧,列出 title 的网页算是完成了 • 在浏览器中输入 127.0.0.1:8000/list • Django 会根据 urls.py 文件找到 myblog 文 件夹下 blog 目录中的 views.py 文件中 list_title 函数,然后根据 model.py 文件找 到数据库中 BlogPost 表中 title 列,并输出 到 list.html 文件中,最后浏览器渲染出我们 所需的网页。
  • 37. Django 的过程 • Web 服务器收到一个 http 请求 • Django 把 web 服务器传过来的请求转换成一个 请求对象 • Django 在 URLconf 里查找正确的视图函数 • 调用这个视图函数,参数为请求对象以及任何捕 捉到的 URL 参数 • 然后视图会创建并返回一个响应对象 • Django 将这个响应对象转换成 web 服务器可以 理解的格式 • Web 服务器将响应发送给客户端
  • 38. Django 一些可重用的模块 • Django 提供了很多可重用的模块 • Django 的 modules 机制是松耦合的,也就 是说你可以很方便的插入这些模块 • 减少了多余的编写代码工作
  • 39. Django 一些可重用的模块 django-ratings django-ajax-validation django-google-analytics django-mailer django-email- django-queue-service django-announcements django-jits confirmation django-liveblogging django-atompub django-discussion django-galaxy django-messages django-audioplayer django-db-log django-evolution django-dynamic-media- django-authopenid django-googlemap django-compress serve django-avatar django-graphs django-oembed django-clevercss django-object-view- django-basic-blog django-microformats django-chunks tracking django-basic-library django-tagging django-navbar django-ads django-basic-people django-survey django-orm-cache django-rest-interface django-basic-places django-voting django-page-cms django-registration django-cron django-wiki django-photologue django-mobileadmin django-favorites satchmo django-pingback django-openid django-forum sorl-thumbnail django-pressroom django-oauth django-gcal django-mailfriend django-mmo django-recommender
  • 40. 资料 • Django book • 《 django web 开发指南》 • https://www.djangoproject.com/