zoukankan      html  css  js  c++  java
  • 【Django】路由系统 urls.py

    路由系统 urls.py

    路由系统基本配置:

    from django.conf.urls import url
    urlpatterns = [
        url(正则表达式, views视图函数,参数,别名),
    ]
    
    参数说明:
        一个正则表达式字符串
        一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
        可选的要传递给视图函数的默认参数(字典形式)
        一个可选的name参数
        可以两个url对应一个views视图函数(注意:逻辑不能乱)

    下面是一些基本的URL配置案例:

    from django.conf.urls import url
    from django.contrib import admin
    
    from blog import views
    
    urlpatterns = [
    
        url(r'^articles/2003/$', views.special_case_2003),
    
        #url(r'^articles/[0-9]{4}/$', views.year_archive),
    
        url(r'^articles/([0-9]{4})/$', views.year_archive),  #no_named group  //分组之后就是传递给views.py 中对应函数的参数
    
        url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
    
        url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
    
    ]

    无名的分组:

    #在views.py视图函数中也可以通过 **kwargs接收参数
    -------------------------------------------------------------urls.py
    urlpatterns = [
        url(r'^index-(d+)-(d+).html/$',views.index) 
        url(r'^index2-(?P<article_id>d+)-(?P<book_id>d+).html/$',views.index2)       
    ]
    
    
    --------------------------------------------------------------views.py
    def index(request,val1,val2):
        print(request.GET)
        print('val1--',val1)        #按顺序接收url正则中分组传入的值  val1-- 2    
        print('val2--',val2)            #val2-- 3
        return HttpResponse("ok")
    
    def index2(request,*args,**kwargs):
        print(request.GET)
        print('args---',args)   #空的
        print('kwargs===',kwargs)       #kwargs=== {'article_id': '2', 'book_id': '3'}
        return HttpResponse("good")
            

    有名分组:

    url(r'^ymd/(?P<year>d{4})/(?P<month>d{2})/(?P<day>d{2})', views.ymd),

    form表单提交以post方式提交时,Django会给我们做一个csrf安全监测,暂时不用检测的话 在settings.py 中注释掉即可

    给url路由起别名

    别名的作用:防止url访问的修改 导致后面维护困难

    路由分发:

  • 相关阅读:
    C​S​S3​:​transition与visibility
    CSS ::before 和 ::after 伪元素 进阶
    [转]达梦数据库报错:不能同时包含聚集KEY和大字段(text类型)
    [转].netcore webapi post参数长度超过最大限制
    efcore执行sql查询(无需定义dbset<model>)
    Rabbitmq的死信
    用Docker搭建RabbitMq的普通集群和镜像集群
    .NetCore在IdentityServer4因为Cookies的SameSite导致授权登录跳转回登录页的问题
    2021>2022
    js 宽高相关及其应用
  • 原文地址:https://www.cnblogs.com/XJT2018/p/11299967.html
Copyright © 2011-2022 走看看