Django的参数传递问题

[TOC]

Django的参数传递问题

  1. 传统的传参方式url?name=value&id=XXX
  • get请求
  • request.GET['name']
  • request.GET.get('id',None)
  • request.GET.getlist('fav')

  • POST请求
    • request.POST['name']
    • request.POST.get('id',None)
    • request.POST.getlist('fav')

传统的传参方式

  • 判断request请求的类型request.method == 'GET'或者request.method == 'PosT'
  • 若请求为GET,获取每个属性的值request.GET.get("属性名称")或者request.POST.get("属性名称")
    • 注:一定要在form表单中的每个input里面添加name值,不然无法获取属性值
  • 如果修改数据,需要进行保存

RESTFUL传递参数

通过将参数包含在URL地址中作为地址的一部分出现,在一定程度上都能有非常好的参数混淆的作用,对于网站安全性的提升是非常友好的一种操作
Django也实现了RESTFUL风格发送参数是将参数包含在url地址中,所以参数的接收定义就会在路由中进行配置,参数的配置接收主要有两种方式

位置参数和关键字参数

在url.py中配置

#利用正则的分组,第一个括号表示第一个参数
url(r"^(\w+)/param1$",views.param1,name="param1),
#使用命名参数(关键字参数)
url(r"^(?P\d+)/param2$",views.param2,name="param2"),

视图函数views.py

# url(r"^(\w+)/param1",views.param1,name="param1"),
# 第一个参数就是正则分组的参数
def param1(request,name): 
    print("前端传输的 name:", name) 
    return HttpResponse("这个是使用位置参数方式")

# 这个是使用命名参数
#url(r"^(?P\d+)/param2",views.param2,name="param2")
def param2(request,username) 
        print("前端传输的 username:", username)        
        return HttpResponse("这个是使用命名参数方式")

你可能感兴趣的:(Django的参数传递问题)