第三章 动态网页基础
2013-05-29 22:59
232 查看
第三章 动态网页基础
1、第一份视图:动态内容
1)视图函数
一个接受 Web 请求并返回 Web 响应的 Python 函数
响应可以是一份网页的 HTML 内容、一次重定向、一条 404 错误、一份 XML 文档、一幅图片,或其它任何东西
该段代码可以随意放置
2)例子views.py
2、将 URL 映射到视图
1)URLconf就像是 Django 所支撑网站的目录
本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表
必须位于python搜索路径!
2)python搜索路径
启动 Python 交互式解释程序,输入 import sys,接着输入 print sys.path
对于所有路径,按照顺序查找(注:Python 路径第一项的空字符串表示当前目录)
3)current_datetime视图
①urlpatterns变量定义了 URL 以及用于处理这些 URL 的代码之间的映射关系
②current_datetime视图函数作为对象传递,而不是调用它。函数是一级对象,可以向变量一样传递
③r'^time/$'中的 r表示 '^time/$'是一个原始字符串,避免正则表达式有过多的转义字符
④^和 $符号非常重要。上箭头要求表达式对字符串的头部进行匹配,美元符号则要求表达式对字符串的尾部进行匹配。来精确匹配 URL /time/
4)正则表达式
3、Django是怎么处理请求的
1)运行Django开发服务器和构造Web页面请求
①命令 python manage.py runserver从同一目录载入文件 settings.py(特定的Django实例所有的各种可选配置)
②ROOT_URLCONF告诉Django哪个Python模块应该用作本网站的 URLconf。 系统自动生成的 settings.py里 ROOT_URLCONF默认设置是 urls.py
③当访问 URL /time/时,Django 根据 ROOT_URLCONF的设置装载 URLconf 。然后按顺序逐个匹配URLconf里的URLpatterns,直到找到一个匹配的
④当找到这个匹配的URLpatterns就调用相关联的view函数,并把 HttpRequest对象作为第一个参数
2)URL配置和松耦合
决定URL返回哪个视图函数和实现这个视图函数是在两个不同的地方
3)404 错误
调试模式下,部署到因特网需要关闭调试模式
4、第二个视图:动态URL
1)带通配符的URL匹配模式
(\d{1,2})表示只允许一个或两个数,使用圆括号把参数在URL模式里标识出来
2)hours_ahead视图
views.py修改如下:
1、第一份视图:动态内容
1)视图函数
一个接受 Web 请求并返回 Web 响应的 Python 函数
响应可以是一份网页的 HTML 内容、一次重定向、一条 404 错误、一份 XML 文档、一幅图片,或其它任何东西
该段代码可以随意放置
2)例子views.py
from django.http import HttpResponse #从 django.http模块导入 HttpResponse类 import datetime #从 Python 标准库(Python 自带的实用模块集合)中导入datetime模块 def current_datetime(request): #current_datetime函数,每个视图函数都以一个 HttpRequest对象为第一个参数,该参数通常命名为 request now = datetime.datetime.now() #计算当前日期和时间,并以 datetime.datetime对象的形式保存为局部变量 now html = "<html><body>It is now %s.</body></html>" % now #%s是占位符,字符串之后的百分号表示使用变量 now的值替换 %s return HttpResponse(html) #返回一个包含所生成响应的 HttpResponse对象。每个视图函数都负责返回一个 HttpResponse对象
2、将 URL 映射到视图
1)URLconf就像是 Django 所支撑网站的目录
本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表
必须位于python搜索路径!
2)python搜索路径
启动 Python 交互式解释程序,输入 import sys,接着输入 print sys.path
对于所有路径,按照顺序查找(注:Python 路径第一项的空字符串表示当前目录)
3)current_datetime视图
from django.conf.urls.defaults import * #从 django.conf.urls.defaults模块引入了所有的对象,其中包括了叫做 patterns的函数 from mysite.views import current_datetime #从模块 (在 Python 的 import 语法中, mysite/views.py转译为 mysite.views) 中引入了 current_datetime视图 urlpatterns = patterns('', (r'^time/$', current_datetime), #URLpattern, Python 元组,其第一个元素是简单的正则表达式,第二个元素是为该模式应用的视图函数 )
①urlpatterns变量定义了 URL 以及用于处理这些 URL 的代码之间的映射关系
②current_datetime视图函数作为对象传递,而不是调用它。函数是一级对象,可以向变量一样传递
③r'^time/$'中的 r表示 '^time/$'是一个原始字符串,避免正则表达式有过多的转义字符
④^和 $符号非常重要。上箭头要求表达式对字符串的头部进行匹配,美元符号则要求表达式对字符串的尾部进行匹配。来精确匹配 URL /time/
4)正则表达式
3、Django是怎么处理请求的
1)运行Django开发服务器和构造Web页面请求
①命令 python manage.py runserver从同一目录载入文件 settings.py(特定的Django实例所有的各种可选配置)
②ROOT_URLCONF告诉Django哪个Python模块应该用作本网站的 URLconf。 系统自动生成的 settings.py里 ROOT_URLCONF默认设置是 urls.py
③当访问 URL /time/时,Django 根据 ROOT_URLCONF的设置装载 URLconf 。然后按顺序逐个匹配URLconf里的URLpatterns,直到找到一个匹配的
④当找到这个匹配的URLpatterns就调用相关联的view函数,并把 HttpRequest对象作为第一个参数
2)URL配置和松耦合
决定URL返回哪个视图函数和实现这个视图函数是在两个不同的地方
3)404 错误
调试模式下,部署到因特网需要关闭调试模式
4、第二个视图:动态URL
1)带通配符的URL匹配模式
from django.conf.urls.defaults import * from mysite.views import current_datetime, hours_ahead urlpatterns = patterns('', (r'^time/$', current_datetime), (r'^time/plus/(\d{1,2})/$', hours_ahead), )
(\d{1,2})表示只允许一个或两个数,使用圆括号把参数在URL模式里标识出来
2)hours_ahead视图
views.py修改如下:
def hours_ahead(request, offset): #HttpRequest对象总是作为它的第一个参数,offset是从匹配的URL里提取出来的,总是字符串!第二个! offset = int(offset) # 字符串值转换为整数 dt = datetime.datetime.now() + datetime.timedelta(hours=offset) # datetime.timedelta函数的参数 hours必须是整数类型 html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt) #两个 %s符号和一个以进行插入的值的元组: (offset, dt) return HttpResponse(html)
相关文章推荐
- 动态网页开发基础
- 动态网页开发基础
- 第一章 动态网页开发基础
- 动态网页开发基础
- JSP技术基础(动态网页基础)
- 动态网页开发基础
- 翻译www.djangobook.com之第三章:动态Web页面基础
- HTTP服务基础 、 网页内容访问 、 安全Web服务 、 部署动态网站
- 菜鸟学习:动态网页PHP基础学习笔记
- 动态网页性能测试必备基础之熟悉Http Session
- 基础动画-动态遮罩教程-Flash-网页制作
- jsp动态网页基础
- 《The Django Book》实战--第二章--动态网页基础
- 动态网页开发基础
- jsp动态网页开发基础
- 基础动画-动态遮罩教程-Flash-网页制作
- JSP基础知识(如何访问动态网页和http协议)
- 动态网页基础笔记1
- 动态网页的制作基础
- 动态网页开发基础