zoukankan      html  css  js  c++  java
  • Django学习之

    路由系统:URL
    1:一个URL对应一个类或函数:
      url(r'^register',reg.register) 函数写法
      url(r'^cbv',reg.cbv.as_view()) 类写法
    2:通过正则实现多个url对应一个类或函数:
      url(r'^detail-(d+).html',reg.detail) 正则匹配detail-任意数字
      url(r'^detail-(?P<nid>d+)-(?P<uid>d+).html',reg.detail) 正则匹配指定关键字(nid,uid)
      另:以上2种情况在函数内可以写成:
      def detail(request,*args,**kwargs):
        pass
      这里:第1个的url的d会传入*args,第2个的url会传入**kwargs
    举例:
      a.
        url(r'^detail-(d+)-(d+).html',reg.detail),
        def func(request,nid,uid): pass
        def func(request,*args): pass
      b.
        url(r'^detail-(?P<nid>d+)-(?P<uid>d+).html',reg.detail),
        def func(request,nid,uid): pass
        def func(request,**kwargs): pass
    4:name
      对URL路由关系进行命名,以后可以根据此名称生成自己想要的URL
      如URL:url(r'^abaaasdfasdfa/',views.home,name='home1'),
      如URL:url(r'^abc/(d+)/(d+)/',views.home,name='home2'),
      如URL:url(r'^def/?P<nid>(d+)/?P<uid>(d+)/',views.home,name='home3'),
      def func(request,*args,**kwargs):
      from django.urls import reverse
        url1 = reverse('home1') # url相当于abaaasdfasdfa/
        url2 = reverse('home2',args=(1,2,)) # url相当于abc/1/2/
        url3 = reverse('home3',kwargs={'nid':1,'uid':2}) # url相当于def/1/2/
      xxx.html
        {% url "home1" %} # abaaasdfasdfa/
        {% url "home2" 1 2 %} # abc/1/2/
        {% url "home3" nid=1 uid=2 %} # def/1/2/
      模板语言:
        {% url "home" %}
        {% url "home" 3 %}
    注:
    # 获取当前的url
      request.path_info
    5.url 路由分发,project下的url为1级(最高级),app里的为二级
    如:
      一级:
      url(r'^cmdb/',include('cmdb.urls')),
      url(r'^app/',include('app01.urls')),
    6.默认值
    参考:http://www.cnblogs.com/wupeiqi/articles/5237704.html
      url(r'^index/$',views.index,{'name':'root'}),

      def index(request,name):
        print(name)
        return HttpResponse('OK')
    7:命名空间:
    一级:
      /admin/ include('app01.urls',namespace='m1')
      /crm/ include('app01.urls',namespace='m2')

    二级:
      app_name='app01'
      url(r'^index/',views.index,name='n1')
      view: v = reverse('m1:n1')
      html: {% url 'm1:n1'%} # 进行url反解

  • 相关阅读:
    重大利好,Dubbo 3.0要来了。
    SaaS,PaaS,IaaS都是什么鬼?
    为什么Netty这么火?与Mina相比有什么优势?
    (21)python lambda表达式
    (19)python scrapy框架
    (18) python 爬虫实战
    (5)ASP.NET HTML服务器控件
    (17)python Beautiful Soup 4.6
    (4)ASP.NET内置对象1
    (16)网络爬虫
  • 原文地址:https://www.cnblogs.com/zy6103/p/7551348.html
Copyright © 2011-2022 走看看