欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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地址中,进行路由匹配,将对应的数据使用分组的情况进行匹配

Django视图之URL路径参数、反向解析以及get,post获取参数

第二步:框架会将在第一步匹配的数据自动传递给处理路径的视图函数,匹配的个数与视图函数的参数个数必须一致

def index(request,val1,val2):
    print(val1,val2)
    return HttpResponse('测试路径传参')

1.2.2 关键字参数

第一步在URL匹配的过程总,给每一个分组起名

Django视图之URL路径参数、反向解析以及get,post获取参数

第二步:在视图中,变量名与URL中一一对应,位置不需要是有顺序

Django视图之URL路径参数、反向解析以及get,post获取参数

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 表单数据

Django视图之URL路径参数、反向解析以及get,post获取参数

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进行模拟
Django视图之URL路径参数、反向解析以及get,post获取参数

第二步:

在后端进行获取

print('获取前端传递的json数据',request.body)
注意点:
request.body 获取json数据

第三步获取数据的展示

Django视图之URL路径参数、反向解析以及get,post获取参数

第四步: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