Python——django 学习笔记3 视图
请求(HttpRequest对象)
利用HTTP协议向服务器传参有几种途径。
URL路径参数
-
位置传参
在应用中的urls.pyurl(r'^(\d+)/(\d+)/$', views.index),
在应用中的views.py的函数:参数的位置不能错
def index(request, value1, value2): # 构造上下文 context = {'v1':value1, 'v2':value2} # 模板中的网页路径 template_name = 'Book/index.html' # render(request, template_name, context=None, content_type=None, status=None, using=None) return render(request, template_name, context)
-
关键字传参
在应用中的urls.py
其中?P部分表示为这个参数定义的名称为value1url(r'^(?P<value1>\d+)/(?P<value2>\d+)/$', views.index),
在应用中的views.py的函数: 参数的位置可以变,跟关键字保持一致即可
def index(request, value2, value1): # 构造上下文 context = {'v1':value1, 'v2':value2} return render(request, 'Book/index.html', context)
Django中的QueryDict对象
查询字符串Query String
获取请求路径中的查询字符串参数(例如?k1=v1&k2=v2),可以通过request.GET属性获取,返回QueryDict对象。
# /get/?a=1&b=2&a=3
def get(request):
a = request.GET.get('a')
b = request.GET.get('b')
alist = request.GET.getlist('a')
print(a) # 3
print(b) # 2
print(alist) # ['1', '3']
return HttpResponse('OK')