Django视图之URL路径参数、反向解析以及get,post获取参数
程序员文章站
2022-07-14 22:17:42
...
1.1 反向解析
第一步:在include中设置namespace
第二步:在子应用的URL中设置name
第三步:以后如果需要使用到反向解析来获取真实的路径地址
from django.urls import reverse
reverse('books:testurl')
1.2 URL路径参数
1.2.1 位置参数
第一步:现在url地址中,进行路由匹配,将对应的数据使用分组的情况进行匹配
第二步:框架会将在第一步匹配的数据自动传递给处理路径的视图函数,匹配的个数与视图函数的参数个数必须一致
def index(request,val1,val2):
print(val1,val2)
return HttpResponse('测试路径传参')
1.2.2 关键字参数
第一步在URL匹配的过程总,给每一个分组起名
第二步:在视图中,变量名与URL中一一对应,位置不需要是有顺序
1.3 get获取参数
1.3.1 get方法
def get(self, key, default=None):
"""
Returns the last data value for the passed key. If key doesn't exist
or value is an empty list, then default is returned.
"""
try:
val = self[key]
except KeyError:
return default
if val == []:
return default
return val
注意点:
1、如果键名出现的不止一次,get获取的就是最后一个值
2、如果键名不存在或者值为空,就会返回默认值
1.3.2 getlist
def getlist(self, key, default=None):
"""
Return the list of values for the key. If key doesn't exist, return a
default value.
"""
return self._getlist(key, default, force_list=True)
注意点:
1、获取的是对应键名的所有值
1.4 post请求请求体参数
1.4.1 表单数据
def index3(request):
print('###################')
print(request)
# print('name',request.GET.get('name'))
# print('name',request.GET.getlist('name'))
print('post请求的表单数据',request.POST.get('name'))
print('post请求的表单数据',request.POST.getlist('name'))
return HttpResponse('测试get传参')
1.4.2 非表单数据
第一步,postman进行模拟
第二步:
在后端进行获取
print('获取前端传递的json数据',request.body)
注意点:
request.body 获取json数据
第三步获取数据的展示
第四步:json数据的转化问题
print('获取前端传递的json数据',request.body)
# 二进制类型
json_bin = request.body
# 普通的字符串
json_str = json_bin.decode()
print(json_str)
# 将字符串转化成Python数据类型
import json
json_dict = json.loads(json_str)
print(json_dict)
1.5 请求头获取
request.META