• Django url


    urlpatterns = [
      url(正则表达式, views视图函数,参数,别名),
    ]

     

     

    参数说明:

     

    • 一个正则表达式字符串
    • 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
    • 可选的要传递给视图函数的默认参数(字典形式)
    • 一个可选的name参数

     

    http请求中产生两个核心对象:

            http请求:HttpRequest对象

            http响应:HttpResponse对象

    所在位置:django.http

    之前我们用到的参数request就是HttpRequest    检测方法:isinstance(request,HttpRequest)

     

     

    1:

    配置:url(r'^index', views.index),

    例:

    def index(self):

    return render(self,'index.html')

     

     

    2:

    增加1个参数;使用括号

    配置:url(r'^year/([0-9]{3,4})/$', views.year),

    例:([0-9]{3,4}) 会传递给year

    def year(self,year):

    return HttpResponse(year+"year")

    浏览器访问:

    http://127.0.0.1/year/2017/

     

     

    3:

    增加2个参数

    配置:url(r'^year/([0-9]{3,4})/([0-9]{1,4})', views.month),

    例:([0-9]{3,4})/([0-9]{1,4}) 分别会传递给year,month

    def month(self,year,month):

    return HttpResponse(year+"year"+" "+month+"month")

    浏览器访问:

    http://127.0.0.1/year/2017/08/

     

     

     

    4:

    增加2个分组参数;view接收参数的时候,必须要跟分组参数定义名字相同

    配置:url(r'^attr/(?P<id>[0-9]{2})/(?P<name>[0-9]{2})',views.arrt),

    例:分组id(?P<id>[0-9]{2}) 和name (?P<name>[0-9]{2})分别传递给id,name

    def arrt(self,id,name):

    return HttpResponse('id:'+ id + "name:"+name)

    浏览器访问:

    http://127.0.0.1/attr/17/09/

     

     

    5:

    另外一种接收参数;增加1个参数,view接收参数的时候,必须要跟分组参数定义名字相同

    配置:url(r'^self/',views.self,{'name':'good'}),

    例:{'name':'good'} 值会传递给 name

    def self(self,name):

    return HttpResponse("name:"+name)

    浏览器访问:

    http://127.0.0.1/self/

     

     

     

    6:

    增加1个分组参数,在增加一个形式参数;view接收参数的时候,必须要跟分组参数定义名字和形式参数相同

    配置:url(r'^js/(?P<id>[0-9]{2})',views.js,{'js':'GO'}),

    例:分组id(?P<id>[0-9]{2})会传递给id,{'js':'GO'}会传递给js

    def js(self,id,js):

    return HttpResponse('id:'+id+"js:"+js)

    浏览器访问:

    http://127.0.0.1/js/17/

     

     

     

    7:

    增加别名,给html中的Form表单中的action使用

    配置:url(r'^cs',views.cs,name='cname'),

    例:cname会通过模版渲染后添加到Form表单中的action中,action中要{% url "cname" %}表单,写cname值不是写name

    def cs(self):

    if self.method == 'POST':

    username = self.POST.get('username',None)

    print(username)

    return render(self,'cs.html')

    html写法:

    <form action={% url "cname" %} method="post">

    <input type="text" name="username">

    <input type="submit" value="submit">

    </form>

    渲染结果:

     

     

     URL 路由分发

    from django.conf.urls import url,include

    1 url(r'^app/', include('app.urls')),

     

     

     

    app里面操作

    from app import views

     

  • 相关阅读:
    BZOJ3790 : 神奇项链
    BZOJ3630 : [JLOI2014]镜面通道
    BZOJ3738 : [Ontak2013]Kapitał
    个人总结
    mac 下的 top 命令
    去掉Xcode源码末尾的空格
    让UILabel的文字顶部对齐
    使用RBTool自动提交code review请求
    不要在init和dealloc函数中使用accessor
    将textField编辑完内容作为参数发送请求
  • 原文地址:https://www.cnblogs.com/ajaxa/p/9262190.html
Copyright © 2020-2023  润新知