狠狠撸

狠狠撸Share a Scribd company logo
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(/slideshow/django-13374248/13374248/r&)),
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(/slideshow/django-13374248/13374248/r&)),
   url(/slideshow/django-13374248/13374248/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

More Related Content

Similar to 顿箩补苍驳辞入门 (20)

Django step0
Django step0Django step0
Django step0
永昇 陳
?
Django development
Django developmentDjango development
Django development
loveyudu
?
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
?
Clojure cnclojure-meetup
Clojure cnclojure-meetupClojure cnclojure-meetup
Clojure cnclojure-meetup
sunng87
?
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
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 q2
Yang FaFa
?
Django敏捷开发 刘天斯
Django敏捷开发 刘天斯Django敏捷开发 刘天斯
Django敏捷开发 刘天斯
liuts
?
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
Mu Chun Wang
?
贬罢惭尝5概览
贬罢惭尝5概览贬罢惭尝5概览
贬罢惭尝5概览
Adam Lu
?
DrupalCamp Taipei 2012 迷人的有「型」網站
DrupalCamp Taipei 2012 迷人的有「型」網站DrupalCamp Taipei 2012 迷人的有「型」網站
DrupalCamp Taipei 2012 迷人的有「型」網站
Hipfox
?
Html5
Html5Html5
Html5
cazhfe
?
贬迟尘濒5和肠蝉蝉3入门
贬迟尘濒5和肠蝉蝉3入门贬迟尘濒5和肠蝉蝉3入门
贬迟尘濒5和肠蝉蝉3入门
Xiujun Ma
?
Python crawling tutorial
Python crawling tutorialPython crawling tutorial
Python crawling tutorial
Chen-Ming Yang
?
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
Chen-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
?
Django development
Django developmentDjango development
Django development
loveyudu
?
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
?
Clojure cnclojure-meetup
Clojure cnclojure-meetupClojure cnclojure-meetup
Clojure cnclojure-meetup
sunng87
?
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
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 q2
Yang FaFa
?
Django敏捷开发 刘天斯
Django敏捷开发 刘天斯Django敏捷开发 刘天斯
Django敏捷开发 刘天斯
liuts
?
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
Mu Chun Wang
?
贬罢惭尝5概览
贬罢惭尝5概览贬罢惭尝5概览
贬罢惭尝5概览
Adam Lu
?
DrupalCamp Taipei 2012 迷人的有「型」網站
DrupalCamp Taipei 2012 迷人的有「型」網站DrupalCamp Taipei 2012 迷人的有「型」網站
DrupalCamp Taipei 2012 迷人的有「型」網站
Hipfox
?
贬迟尘濒5和肠蝉蝉3入门
贬迟尘濒5和肠蝉蝉3入门贬迟尘濒5和肠蝉蝉3入门
贬迟尘濒5和肠蝉蝉3入门
Xiujun Ma
?
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
Chen-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
?

顿箩补苍驳辞入门

  • 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(/slideshow/django-13374248/13374248/r&)), 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(/slideshow/django-13374248/13374248/r&)), url(/slideshow/django-13374248/13374248/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/