django1.8高级视图和URL配置读书笔记

一、在url配置中可以通过导入视图函数来将url模式和对应的函数对象进行映射,也可以通过字符串的形式进行映射。字符串包含应当是模块名、函数名的组合例如:

之前:

from mysite import views

urlpatterns = patterns(‘‘,
    (r‘^hello/$‘, views.hello),
    (r‘^time/$‘, views.current_datetime),
    (r‘^time/plus/(d{1,2})/$‘, views.hours_ahead),
)

现在:不用再导入模块

from django.conf.urls.defaults import *

urlpatterns = patterns(‘‘,
    (r‘^hello/$‘, ‘mysite.views.hello‘),
    (r‘^time/$‘, ‘mysite.views.current_datetime‘),
    (r‘^time/plus/(d{1,2})/$‘, ‘mysite.views.hours_ahead‘),
)

2、在同一个app中,url对应的处理函数前面可能是相同的,这是可能会需要重复的输入相同的字符串。比如上面的‘mysite.views’,我们可以将它提取出来,放到第一个字符串

如:

from django.conf.urls.defaults import *

urlpatterns = patterns(‘mysite.views‘,
    (r‘^hello/$‘, ‘hello‘),
    (r‘^time/$‘, ‘current_datetime‘),
    (r‘^time/plus/(d{1,2})/$‘, ‘hours_ahead‘),
)

django系统会自动帮我们用‘.’将这两个字符串连接起来。

注意:此时需要将包名、模块名、函数名都加上,才可以被搜索到。他会在系统环境设置的path变量中查找相应函数。

3、如果使用字符串形式来表示响应函数的话,可能遇到不同的前缀,也有相应的办法,就是用多patterns前缀来处理。

from django.conf.urls.defaults import *

urlpatterns = patterns(‘mysite.views‘,
    (r‘^hello/$‘, ‘hello‘),
    (r‘^time/$‘, ‘current_datetime‘),
    (r‘^time/plus/(\d{1,2})/$‘, ‘hours_ahead‘),
)

urlpatterns += patterns(‘weblog.views‘,
    (r‘^tag/(\w+)/$‘, ‘tag‘),
)

pattens()函数返回的对象是可以相加的。

4、调试模式中的特例

from django.conf import settings
if settings.DEBUG:
    urlpatterns += patterns(‘‘,
        (r‘^debuginfo/$‘, views.debug),
    )

5、使用命名组(?P<name>pattern)

例如:(r‘^articles/(?P<year>\d{4})/(?P<month>\d{2})/$‘, views.month_archive),访问 /articles/2006/03/ 会在函数中

month_archive(request, year=‘2006‘, month=‘03‘)

时间: 2025-01-13 13:01:39

django1.8高级视图和URL配置读书笔记的相关文章

Django笔记 —— 高级视图和URL配置

最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其实我的所有笔记都是),并不会过于详细的讲解.因此如果有大家看不明白的地方,欢迎在我正版博客下留言,有时间的时候我很愿意来这里与大家探讨问题.(当然,不能是简简单单就可以百度到的问题-.-) 我所选用的教材是<The Django Book 2.0>,本节是第八章,高级视图和URL配置. 在基础部分

Django高级视图和URL配置

URLconf 技巧 URLconf没什么特别的,就象 Django中其它东西一样,它们只是 Python代码.你可以在几方面从中得到好处,正如下面所描述的. 流线型化(Streamlining)函数导入 看下这个 URLconf,它是建立在第三章的例子上: from django.conf.urls.defaults import * from mysite.views import current_datetime, hours_ahead, hours_behind, now_in_chi

django book学习笔记——高级视图和URL配置

1.URLconf技巧 1).流线型化函数导入 在 URLconf 中的每一个入口包括了它所联系的视图函数,直接传入了一个函数对象. 这就意味着需要在模块开始处导入视图函数.但随着 Django 应用变得复杂,它的 URLconf 也在增长,并且维护这些导入可能使得管理变麻烦. 为了避免这种麻烦,Django 提供了一种方法可以在 URLconf 中为某个特别的模式指定视图函数: 你可以传入一个包含模块名和函数名的字符串,而不是函数对象本身.例如: from django.conf.urls.d

视图的URL配置,找不到我设置的第一个Page

问题:视图的URL配置,找不到我设置的第一个Page 我的代码如下: 结果访问/test/时说找不到这个page 原因:patterns方法的参数有两个,一个是prefix,一个是参数元祖,详见下图,因为我的patterns里少加了一个空的'',它将我写的第一个url单过prefix参数了. 解决办法:在patterns中先加入一个参数'',如下图:

Django -- 视图和URL配置

一个人行走的范围,就是他的世界:    -- 北岛<青灯> 一个人吟唱的语调,就是他的生活.    -- 小Q<小曲> ------------------------------------------------------------------------------------------------- 前一节我们建立了一个Django项目,这一节我们来了解视图和url的关系: [第一个视图 根目录] 当我们搭建好django时,urls.py内没有url,我们会看到一个

django book学习笔记——视图和URL配置

1.视图 一个视图就是Python的一个函数,每个视图函数至少要有一个参数,通常被叫作request. 这是一个触发这个视图.包含当前Web请求信息的对象,是类django.http.HttpRequest的一个实例.它返回一个HttpResponse实例.为了使一个Python的函数成为一个Django可识别的视图,它必须满足这两个条件.(也有例外) 例: from django.http import HttpResponse def hello(request):         retu

Django 1.8_视图和URL配置

前情提要 学习了如何创建django项目,运行开发django服务器,并了解了mvc模式. 内容 VIEW URL 正则表达式 错误解析与寻求帮助 hello world.html dynamic_date.html dynamic_date_offset.html Django处理请求的过程 Helloword 创建一网页,打开即显示helloworld. 其中网页内容由视图生成,并配置URL. 在mysite/mysites下创建views.py并编辑 1 from django.http

Django框架1——视图和URL配置

三个命令 1.创建一个django项目 在cmd中:django-admin.py startproject project_name D:\python\django_site>django-admin startproject first_site 2.创建应用 python manage.py startapp app_name D:\python\django_site\first_site>python manage.py startapp app001 3.运行django项目 p

Djang学习笔记3视图和URL配置

1. 页面内容 : 一个网页通过一个视图函数(view function)来展示, 如何把它放到网站服务器中呢,通过url (定义在URLconf)中 View: 视图有时候非常简单都是完整的函数和导入声明 from django.http import HttpResponse def hello(request): return HttpResponse("Hello world") 首先,我们从 django.http 模块导入(import) HttpResponse 类.和