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访问的修改 导致后面维护困难

    路由分发:

  • 相关阅读:
    According to TLD or attribute directive in tag file, attribute end does not accept any expressions
    Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already in use.
    sql注入漏洞
    Servlet—简单的管理系统
    ServletContext与网站计数器
    VS2010+ICE3.5运行官方demo报错----std::bad_alloc
    java 使用相对路径读取文件
    shell编程 if 注意事项
    Ubuntu12.04下eclipse提示框黑色背景色的修改方法
    解决Ubuntu环境变量错误导致无法正常登录
  • 原文地址:https://www.cnblogs.com/XJT2018/p/11299967.html
Copyright © 2011-2022 走看看