url&视图
django.cof.url.defaults
django.cof.url.defaults.patterns()
1
2
3
4
5
6
7urlpatterns = patterns('', # Example:
# (r'^mysite/', include('mysite.foo.urls')),
# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# (r'^admin/', include(admin.site.urls)),)
在这个函数中添加元组映射:正则表达式->视图函数
在正则表达式中,'^admin/'将会和以admin为开头的url匹配,如/admin/user/
'admin/$'将会和以admin为结尾的url匹配,如/01/lal/admin/
为根目录实现视图:只需要添加正则表达式'^$'对应的视图函数就可以进行根目录的匹配
django.cof.url.defaults.include()
1 include(arg, namespace=None, app_name=None):
arg是url.py的位置字符串,指定的该url文件位置可以在所在文件配置patterns,实现松散耦合。
namespace给url定义命名空间
Django处理视图
当运行python manage.py runserver时,脚本将在于manage.py的同目录下寻找setting.py文件,以寻找配置信息:
Django处理视图的过程
ROOT_URLCONF这个配置最为重要,它将作为URLconf告诉Django在这个站点中那些Python的模块将被用到
1 ROOT_URLCONF = 'mysite.urls'
这个配置指向mysite/url.py文件,这是视图配置的文件
ROOT_URLCONF配置URLconf,并且在URLpatterns中进行匹配url所映射的view函数并调用,且把HttpRequest对象作为第一个参数传入函数中。
视图函数返回一个HttpResponse
Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来
view函数的传参
默认情况下,view的第一个参数是HttpRequest对象。但是对于URLpatterns中url正则表达式的强大应用,如果匹配到了不确定性的内容,就需要我们向view中传参进行处理。如:
1
2
3
4
5 from django.conf.urls.defaults import *
from mysite.views import hello, current_datetime, hours_ahead
urlpatterns = patterns('', (r'^hello/$', hello),
(r'^time/$', current_datetime), (r'^time/plus/(\d{1,2})/$', hours_ahead),
)
对于(\d{1,2})的匹配,可能会有1-2位的整数出现,对于这种不确定的情况,我们想要对不同的值获取不同的结果,当然要在视图(view)中设置参数传入。
1
2
3
4
5
6 from django.http import Http404, HttpResponseimport datetime
def hours_ahead(request, offset): try: offset = int(offset)
except ValueError: raise Http404()
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
return HttpResponse(html)
offset 是从匹配的URL里提取出来的。 例如:如果请求URL是/time/plus/3/,那么offset将会是3;如果请求URL是/time/plus/21/,那么offset将会是21。请注意:捕获值永远都是字符串(string)类型,而不会是整数(integer)类型,即使这个字符串全由数字构成(如:“21”)。
offset的位置很重要,它一定是view函数的第二个参数
其中有一个非常重要也是老练的做法,就是传参进来之后,先要将参数进行类型转换(类型设定),比如offset需要int()一下,否则默认是str类型的
还有一个地方,就是如果出现异常抛出了Http404
url&视图的更多相关文章
- Django 路由系统URL 视图views
一.Django URL (路由系统) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:你就是以这种方式告诉Djan ...
- Django学习---路由url,视图,模板,orm操作
Django请求周期 url -> 路由系统 ->函数或者类 -> 返回字符串 或者 模板语言 Form表单提交: 点击提交 -> 进入url系统 -> 执行函数 ...
- 巨蟒python全栈开发django3:url&&视图
1.url正则匹配分组和命名分组 2.路由分发 3.url别名和反向解析 4.httprequest和httpresponse的使用 内容回顾: .jinja2(flask框架,没有内置模板对象,需要 ...
- spring mvc velocity多视图
1.ViewResolverUrlBasedViewResolver 这个东西是根据url 进行路由的.网上搜了 1.order 排序,同名出现各种问题 2.XmlViewResolver,BeanN ...
- Django学习笔记(二)视图函数
一.url映射 1.为什么回去urls.py文件中找映射? 在‘settings.py’文件中配置了‘ROOT_URLCONF’为‘urls.py’.所有的django回去urls.py中寻找. 2. ...
- Django(命名URL和URL反向解析)
day67 参考: https://www.cnblogs.com/liwenzhou/articles/8271147.html#autoid-1-4-0 反向解析URL 本 ...
- django views视图
视图函数简称视图,本质上是一个简单的python函数,它接受web请求并且返回web响应:响应的内容可以是HTML网页.重定向.404错误.XML文档或图像等任何东西,但是,无论视图本身是个什么处理逻 ...
- ZendFramework-2.4 源代码 - 关于MVC - View层 - 视图渲染器、视图插件管理器
<?php // 1. 视图渲染器 class PhpRenderer implements Renderer, TreeRendererInterface { /** * 插件管理器 */ p ...
- 关于SpringMVC映射模型视图的几点小事
一.SpringMVC概述 SpringMVC为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器, ...
随机推荐
- Mysql 建表时,日期时间类型选择
mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 D ...
- Network Saboteur(搜索)
Network Saboteur POJ2531 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10351 Accept ...
- LeetCode_Longest Palindromic Substring
Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...
- SQL Server索引 - 索引(物化)视图 <第九篇>
一.索引视图基本概念 索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图,所为物化就是几乎和表一样,其数据也是会存储一份的(会占用硬盘空间,但是查询速度快,例如可以将count(),sum( ...
- SDL显示内存中的图像
<textarea readonly="readonly" name="code" class="c++"> #include ...
- POJ1679(次小生成树)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24201 Accepted: 8596 D ...
- easy_install django==1.4.2_百度搜索
easy_install django==1.4.2_百度搜索 安装指定版本的django
- SQLServer 2000 Driver for JDBC][SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确解决方法
问题:[SQLServer 2000 Driver for JDBC][SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确.参数 1 (""): ...
- Python基础教程学习(四)类的创建与继承
类中可以有方法,类外也可以有函数,其实类就是一种封装, Python中可以自己定义一个函数,一可以把这个函数在类中封装成一个方法, 其中的属性和方法自然就从父类中继承来了, 要想获得多个类的属性和功能 ...
- #include<math.h>
1.sin(a)类:a是弧度值: 2.abs(b):结果是b的绝对值: 3.exp(c):exp()用来计算以e为底的x次方值,即ex值,然后将结果返回.返回值: 返回e的x次方计算结果. 4.log ...