• django的路由系统:url


    在url文件中的常用配置:

      Django 1.1版本
      from django.conf.urls improt url

        urlpatterns=[

            url(r'^ 正则表达式 $',views视图,参数,别名),

          ]

      Django 2.0版本以后

       from django.urls improt path

        urlpatterns=[

            path('正则表达式',views视图,参数,别名),

          ]

    分组:

      在正则表达式中加( )   如:  url(r'^del_publisher/(d+)', views.del_publisher),

    有名分组:

      在正则表达式中加( ?P<名字>)  如:  url(r'^blog/(?P<year>d{4})/[1-9]{2}/$', views.blog)

      注意!!!  从URL上捕获的参数都是字符串类型

    引用其他应用中的urls.py :  include的位置一样都在conf.py文件内

        用django 1.1版本中的include

          from django.conf.urls import url,include

            urlpatterns=[

               url(r'^app01/$',include('app01.urls')),

              ]

        用django 2.0版本以后的include

          from django.urls improt path,include

            urlpatterns=[

               path('app01/',include('app01.urls')),

              ]

    url命名和反向解析:

      1,命名: 在别名位置写入name='名字' 

            如:url(r'^publisher_list/', views.publisher_list, name='publisher'),

      使用:

        不带参数:

            1,在视图中使用(views.py文件);

                from django.urls import reverse

                reverse('名字')    备注:通过名字获得对应的路径

            2,在模板中使用(HTML.py文件):
                {% url '名字' %}    备注:通过名字获得对应的路径

        带有参数(分组):

            如: url(r'^blog/(d{4})/([1-9]{2})/$', views.blog, name='blog')

            1,在视图中使用:

                from django.urls import reverse

                revrese('名字',args=('参数','参数'))  备注:获得路径,并将参数改成自己输入的  args是一个元组,如果只有一个值需在参数后加逗号.

            2,在模板中使用:

                {% url '名字' '参数' '参数'  %}    备注:参数可以有多个,用空格隔开
         带有参数,并有命名分组:

            如: url(r'^blog/(?P<year>d{4})/(?P<month>[1-9]{2})/$', views.blog, name='blog')

            1,在视图中使用:

                reverse('名字',kwargs={'命名':'参数','命名':'参数'})

                也可以用: revrese('名字',args=('参数','参数'))

            2,在模板中使用:

                {% url '名字' 命名='参数' 命名='参数'%}

    namespace命名空间模式:  即使不同的APP使用相同的url名称,也不会出错.

        定义: url(r'^app01/$',include('app01.urls',namespace='app01')),

           在app01中的url   url(r'^home/$', views.home, name='home'),

        使用:

          视图:

            reverse ('app01:名字')    名字如:home

          模板:

            {% url 'app01:名字' %}    名字如:home

            

  • 相关阅读:
    08mybatis映射文件及别名
    2016年阅读书单
    Java的位运算
    Python线程操作
    Java之Jackson框架
    Java线程
    Canvas 知识体系简单总结
    图片轮播
    media页面布局2
    利用@media screen实现网页布局的自适应
  • 原文地址:https://www.cnblogs.com/leo-tail-x/p/10071751.html
Copyright © 2020-2023  润新知