【Django】Django路由urls详解

例 :

urlpatterns = patterns('',

  url(r'^hello/$',hello),

)

我们在写URL时实际上写的是正则表达式,尖号(^)和美元符号($),都是正则表达式符号,分别表示字符串的开头和结尾。如上面添加的('^hello/$')表示只有以hello/开头和结尾的url才可以调用hello函数。
 

传参
方式一:?形式的参数


通过request.GET.get(参数名)方法接受参数,路由设置为path('index',调用函数名[不带括号])

app/views.py文件中代码如下:

# 视图函数
 
def index(request):
 
    name = request.GET.get('name', '')
 
    age = request.GET.get('age', '10')
 
    print(name, age)
 
    return HttpResponse('hello aqin~')


app/urls.py代码如下:

from django.urls import path
 
from .views import index
 
    urlpatterns = [
 
        path('index', index),
 
    ]


在浏览器中输入http://localhost:8000/index?name=aqin&age=88传递参数name和age

PyCharm中的控制台应得到如下输出:

方式二:分隔符形式的参数
通过def(request,参数名,参数名)接收参数,路由设置为path('index/<str:name>/<int:age>',调用函数名[不带括号])

app/views.py文件中代码如下:

# 视图函数
 
def index(request, name, age):
 
    # name = request.GET.get('name', '')
 
    # age = request.GET.get('age', '10')
 
    print(name, age)
 
    return HttpResponse('hello aqin~')


app/urls.py代码如下:

from django.urls import path
 
from .views import index
 
urlpatterns = [
 
    # path('index', index),
 
    path('index/<str:name>/<int:age>', index),
 
]


index/<str:name>/<int:age> 参数说明

  • str 字符串类型(匹配任何非空非斜杠)
  • int 整型(匹配任何自然数)

在浏览器中输入http://localhost:8000/index/aqin/88

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值