zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    POJ 2251 Dungeon Master
    HDU 3085 Nightmare Ⅱ
    CodeForces 1060 B Maximum Sum of Digits
    HDU 1166 敌兵布阵(树状数组)
    HDOJ 2050 折线分割平面
    HDU 5879 Cure
    HDU 1878 欧拉回路
    HDU 6225 Little Boxes
    ZOJ 2971 Give Me the Number
    HDU 2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/ajaxa/p/9262190.html
Copyright © 2011-2022 走看看