13 django 新增产品知识点


1 后台

  • form校验
body = json.loads(request.body)
form = ProjectForm(body)
if form.is_valid():
    XXX
else:
    XXX
  • 使用form中的内容进行新增操作
# proj_name = form.cleaned_data['proj_name']
# host = form.cleaned_data['host']
# 引入model,对数据库进行操作
Project.objects.create(**form.cleaned_data)
    
  • 响应中的中文会乱码
result = {'code': 1,  'msg': u'成功!'}
return JsonResponse(result,
                    json_dumps_params={'ensure_ascii':False})
  • 获取json中指定的key的值
# 定义取值方法所需的参数
msg = 'message'
error_dict = json.loads(form.errors.as_json())
tmp_list = []
# 使用取值方法
error_list = get_target_value(msg, error_dict, tmp_list)
# print(error_list)
result = {'code': -1, 'msg': error_list[0]}
return JsonResponse(result,
                    json_dumps_params={'ensure_ascii':False})

---------------------------------------------------------------------------

# 递归调用字典
def get_target_value(key, dic, tmp_list):
    """
    :param key: 目标key值
    :param dic: JSON数据
    :param tmp_list: 用于存储获取的数据
    :return: tmp_list
    """
    if not isinstance(dic, dict) or not isinstance(tmp_list, list):  # 对传入数据进行格式校验
        return 'argv[1] not an dict or argv[-1] not an list '

    if key in dic.keys():
        tmp_list.append(dic[key])  # 传入数据存在则存入tmp_list
    else:
        for value in dic.values():  # 传入数据不符合则对其value值进行遍历
            if isinstance(value, dict):
                get_target_value(key, value, tmp_list)  # 传入数据的value值是字典,则直接调用自身
            elif isinstance(value, (list, tuple)):
                _get_value(key, value, tmp_list)  # 传入数据的value值是列表或者元组,则调用_get_value
    return tmp_list


def _get_value(key, val, tmp_list):
    for val_ in val:
        if isinstance(val_, dict):
            get_target_value(key, val_, tmp_list)  # 传入数据的value值是字典,则调用get_target_value
        elif isinstance(val_, (list, tuple)):
            _get_value(key, val_, tmp_list)  # 传入数据的value值是列表或者元组,则调用自身

2 前台

  • 获取localstorage中的token
localStorage.getItem('token')
  • token加入头文件
headers: new Headers({'Content-Type': 'application/json',
                      'authorization': localStorage.getItem('token')}),

相关