DJANGO book学些笔记之:URLConf技巧

原创 2013年12月05日 23:11:21

1,多个视图函数的前缀相同时,考虑提取共同部分

2,按照视图前缀将url分组,每个组具有共同的view函数前缀,多组urlpartern可相加

3,根据settingDEGUG选项值,可以设置某个url是否被加入到URLConf中去(仅是个示例,可类推)

4,可以在url正则表达式中,将匹配到的路径参数命名,就可以为向view函数以参数形式传递(非命名形式)

5,一旦使用了命名的url匹配,非命名组将无效???

6,可在urlpatern构造时,可直接为view函数传递参数(eg:传递参数为模版名称,可根据url动态调用模版)

7,一个视图函数可以被多个路径匹配,这里没有限制

8,捕捉值和额外传递的给view的参数,如果相同,则捕捉值无效

9,可以将model参数传入到view函数中,以提供通用的视图

def object_list(request, model):
    obj_list = model.objects.all()
    template_name = 'mysite/%s_list.html' % model.__name__.lower()
    return render_to_response(template_name, {'object_list': obj_list})

10,可在urlpatern构造时,为view函数传递参数,进而将其传递到template中,作为模版的配置选项参数(使用实例技巧)

11,在view函数中,可设置某些参数的默认值,当此参数没有被传入时,使用默认值

12/start/{**}/end,当需要这种模式,但/start/spec/end/例外时,可将此写在urlparten的前面先匹配

13,即便你的url中匹配的是数字或其他类型,传递给view函数的都是文本

14,辨别请求的方法(get/post/…)是view函数该干的活,视图函数可解析request,得到请求的为get还是post;解耦技巧:

def method_splitter(request, GET=None, POST=None):
    if request.method == 'GET' and GET is not None:
        return GET(request)
    elif request.method == 'POST' and POST is not None:
        return POST(request)
    raise Http404
def some_page_get(request):
    assert request.method == 'GET'
    do_something_for_get()
    return render_to_response('page.html')
def some_page_post(request):
    assert request.method == 'POST'
    do_something_for_post()
    return HttpResponseRedirect('/someurl/')
# urls.py
from django.conf.urls.defaults import *
from mysite import views
urlpatterns = patterns('',
    # ...
    (r'^somepage/$', views.method_splitter, {'GET': views.some_page_get, 'POST': views.some_page_post}),
    # ...
)

15,当视图函数都有一个共同的逻辑段时(如判断用户权限),考虑使用注解

16urlconf还可以分层实现,在上层中urlinclude下层urlpatern

17,上下多层的urlpartern的正则式组合起来匹配整个请求路径,因此要注意格式

18,上层urlparten传递传递过来的参数,将传递给下层urlparten的每一个view函数

这个技术只有在你确实需要那个被传递的额外参数的时候才显得有用。因为这个原因,这种技术仅当你确信在涉及到的接受到额外你给出的选项的每个URLconf时有用的才奏效

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Django笔记-URLConf Views

一、库文件导入问题 1. from django.conf.urls.defaults import * from website.contact.views import conta...

django book笔记--Chapter 6(error with DROP NOT NULL)

Chapter 6: The Django Admin Site

《The Django Book》笔记(未完结)

《The Django Book》笔记

django1.8 view(2):URLconf part2

本文翻译自django1.8.2官方文档The view layer中的URLconfs段URL dispatcher

django在urlconf中使用include

根文件urls.py #coding=utf-8 """django_book URL Configuration The `urlpatterns` list routes URLs to v...

django1.8 view(1):URLconf part1

本文翻译自django1.8.2官方文档The view layer中的URLconfs段URL dispatche一个简洁优雅的URL配置是一个高质量的WEB应用的重要细节.django允许自由设置...

django开发要点-URL的配置2,在urlconf中增加参数

urls.py的配置,在这里增加了template_name的参数: from django.conf.urls import include, url from django.contrib im...

URLconf+MTV:Django眼中的MVC

MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器)。其中: M 管理应用程序的状态(通常存...

[Django框架学习] URLconf的映射和模版继承

学习目标:实现一个web app, 可以识别人脸表情,识别算法在后台实现。 学习参考资料:The Django Book 2.0 – 中文版 后面会辅助:Django Documentation...

Python网络编程07----Django中的URLconf

介绍     URLconf 就像是 Django 所支撑网站的目录。 它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。 利用Django开发网站,可以设计出非常优美的u...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)