url中可以包含一些参数,这些参数可能是被拼凑出来的,也可能是直接手写进去的。 首先看如何用get的方式,获取url里的值。 1、get方式,例如网址是/?x=1y=2这种,这里的x和y都是变量
url中可以包含一些参数,这些参数可能是被拼凑出来的,也可能是直接手写进去的。
首先看如何用get的方式,获取url里的值。
1、get方式,例如网址是/?x=1&y=2这种,这里的x和y都是变量
先看views函数,我们设计了两个不同类型的取值。一个用来组合字符串,另一个用来计算幂(杨幂的幂)
特别说明:
get里面,第一个参数是django默认把变量进行了类似{‘name‘: name}的包装,所以都是带引号的变量;
第二个参数是默认值,当没有进行赋值时,使用默认值;
如果赋值会直接报错,默认值无效
# 编写一个函数,尝试从url里捕获值,并显示到一个返回页面中 # 想能够处理任意url会比较麻烦,我们假设处理一种限定格式的url def test_get(request): name = request.GET.get(‘name‘, ‘guest‘) gender = request.GET.get(‘gender‘, ‘unknown‘) return HttpResponse(‘%s的性别是:%s‘ % (name, gender)) # 使用同样的方式,计算任意次方,a的n次方 def test_power(request): a = request.GET.get(‘a‘, 0) n = request.GET.get(‘n‘, 0) result = int(a) ** int(n) return HttpResponse(‘%s的%s次方是%d‘ % (a, n, result))
2、按格式书写url
from django.urls import path from . import views urlpatterns = [ path(‘test_get/‘, views.test_get, name=‘test_get‘), path(‘test_power/‘, views.test_power, name=‘test_power‘), ]
可以看见,在test_urls.py里的设置没有任何特殊,只需要指向views的对应函数即可,要做的只是在最后加上?x=x&y=y
如果输入:http://127.0.0.1:8000/test_app/test_get/?name=赵丽颖&gender=女
回车得到页面,里面显示为:赵丽颖的性别是:女
如果输入:http://127.0.0.1:8000/test_app/test_power/?a=12&n=4
回车得到页面,里面显示为:12的4次方是20736