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<username>\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<username>\d+)/param2",views.param2,name="param2")
def param2(request,username) 
        print("前端传输的 username:", username)        
        return HttpResponse("这个是使用命名参数方式")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • Web框架之Django: (1)简介: Django是一个由Python写成开源的重量级Web应用框架,采用MT...
    老肖阅读 8,192评论 0 18
  • 切换到创建项目的目录 cd C:\Users\admin\Desktop\DjangoProject创建名为pr...
    在努力中阅读 8,560评论 2 3
  • 一、Django框架前言知识: 1、C/S和B/S的区别: C/S结构软件:客户端/服务端软件,即客户端要自己下载...
    月下独酌123阅读 10,082评论 0 36
  • 仔细想来人的冲突多半都在“应该”和“未然”之间造就。无论是对自己的疚憾,还是对他人的怨误。一个普遍现象是,人们从自...
    大禅阅读 3,468评论 0 0