例 :
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
|