DRF获取参数的方式


例如url

url(r'^demo/(?P<word>.*)/$', DemoView.as_view())

在类视图中获取参数

url:http://127.0.0.1:8000/demo/aaa/?bbb=bbb&ccc=ccc&ccc=CCC

form:{"body":"body"}

JSON:{"body":"body"}

class DemoView(APIView):

	def post(self, request, aaa):
aaa = aaa # 获取url路径中的参数
bbb_str = request.query_params.get('bbb') # 获取一个查询字符串的参数
ccc_list = request.query_params.getlist('ccc') # 获取多个查询字符串参数
# 请求体中的参数
# 如果通过form表单传递,获取出来是QueryDict,通过.dict()转换成python的字典
form_body = request.data
# 如果通过JSON传递,获取出来就是字典,例如{'body':'body'}
# json_body = request.data
print(aaa)
print(bbb_str)
print(ccc_list)
print(form_body.dict())
# print(json_body)
return Response({'message': 'OK'})

结果

aaa
bbb
['ccc', 'CCC']
{'body': 'body'}

URL路径参数/查询字符串不区分请求方式,GET/POST/PUT等都一样

serializer中获取参数

# view
class DemoView(GenericAPIView):
serializer_class = DemoSerializer def post(self, request, aaa):
serializer = self.get_serializer(data=request.query_params)
serializer.is_valid(raise_exception=True)
return Response({'message': 'OK'}) # serializer
class DemoSerializer(serializers.Serializer):
bbb = serializers.CharField()
ccc = serializers.ListField() # List def validate(self, attrs):
aaa = self.context['view'].kwargs.get('aaa') # 获取路径参数
bbb = attrs['bbb'] # 获取查询字符串
ccc = attrs['ccc'] # 获取以多个key相同的查询字符串
# 获取当前登陆的对象,需要根据场景进行使用
# user = self.context['request'].user
print(aaa)
print(bbb)
print(ccc)
return attrs

DRF框架获取参数的方式的更多相关文章

  1. 使用HTTP协议向服务器传参的方式及django中获取参数的方式

    使用HTTP协议向服务器传参的四种方式 URL路径携带参数,形如/weather/beijing/2018; 查询字符串(query string),形如key1=value1&key2=va ...

  2. Node.js中的express框架获取参数

    express获取参数有三种方法: req.query  适合 http://localhost:3000/form?num=8888 req.body   适合http://localhost:30 ...

  3. struts2访问ServletAPI方式和获取参数的方式

    一.访问ServletAPI的三种方式 方式1:通过让Action类去实现感知接口. 此时项目依赖:servlet-api.jar. ServletRequestAware:感知HttpServlet ...

  4. python DRF获取参数介绍

    DRF获取参数的方式 例如url url(r'^demo/(?P<word>.*)/$', DemoView.as_view()) 在类视图中获取参数 url:http://127.0.0 ...

  5. Struts2-整理笔记(四)Action生命周期、如何获取参数(3种)、集合类型参数封装

    一.Action生命周期 每次请求到来时,都会创建一个新的Action实例 Action是线程安全的,可以使用成员变量接收参数 二.获取参数的方式(3种) 1.属性驱动获得参数 每次请求Action时 ...

  6. koa通过get请求获取参数

    1.通过get方式请求获取参数的方式有两种 通过上下文获取 通过request获取 获得的格式有两种:query与querystring 注意:querystring为小写,驼峰格式会导致无法获取 2 ...

  7. springMVC --@RequestParam注解(后台控制器获取参数)

    在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取. 1.获 ...

  8. Vue router中携带参数与获取参数

    Vue router中携带参数与获取参数 携带参数 query方式,就是?+&结构,例如/login?id=1 <router-link :to="{ name:'login' ...

  9. Node.js中的express框架获取http参数

    最近本人在学习开发NodeJs,使用到express框架,对于网上的学习资料甚少,因此本人会经常在开发中做一些总结. express获取参数有三种方法:官网介绍如下 Checks route para ...

随机推荐

  1. 用apiDoc简化接口开发

    身为程序员最讨厌看到的代码没有注释,自己的代码却讨厌写注释,觉得麻烦,接口也是这样. 比如公司要做一个H5活动的页面,开发文档已经发到后端开发.设计.与前端的邮箱了,其实这个时候就可以开始开发了.开发 ...

  2. ansible 增加本机/etc/hosts 下hostsname 与IP

    --- - hosts: all vars: IP: "{{ ansible_eth0['ipv4']['address'] }}" tasks: - name: 将原有的host ...

  3. 【Alpha】团队项目测试报告与用户反馈

    测试报告 一 . WEB端测试 测试页面 测试功能/界面 功能/界面简述 测试预期效果 测试目的 是否完成(Y/N) Internet Explorer Google chrome Firefox S ...

  4. saltstack二次开发(二)

    Saltstack的api Salt-api有两种方式,一种是函数的形式,有人家定义好的函数,我们可以直接调用,直接写python代码调用函数或者类就可以了.第二种形式是salt-api有封装好的ht ...

  5. sql !=与null

    在写SQL 条件语句是经常用到 不等于‘<>’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉. 例:表A A1  B1 1 0 2 1 3 NUL ...

  6. win10怎么更改切换输入法按键 切换输入法与Win7一样(Ctrl + 空格)

    找到电脑左下角的“开始"图标,用鼠标右键点击它,在弹出的菜单选项里再用鼠标左键点击“设置”来打开Windows设置. 进入“Windows设置”后再点击“设备” 打开“设备”界面后再点击左边 ...

  7. PHP百万级数据导出方案(多csv文件压缩)

    本文转自网络仅供学习之用 概述: 最近公司项目要求把数据除了页面输出也希望有导出功能,虽然之前也做过几个导出功能,但这次数据量相对比较大,差不多一天数据就20W条,要求导7天或者30天,那么数据量就轻 ...

  8. WorldWind源码剖析系列:网络下载类WebDownload

    网络下载类WebDownload封装了对请求的瓦片进行网络下载的相关操作.该类使用了两个委托类型和一个枚举类型. 该类的类图如下. 网络下载类WebDownload各个字段和属性的含义说明如下: st ...

  9. Ubuntu安装Chromium浏览器

    今天介绍一下谷歌浏览器在ubuntu 系统环境下的安装步骤,1.在终端的窗口上输入: sudo wget http://www.linuxidc.com/files/repo/google-chrom ...

  10. Android解决自定义View获取不到焦点的情况

    引言: 我们在使用Android View或者SurfaceView进行图形绘制,可以绘制各种各样我们喜欢的图形,然后满怀信心的给我们的View加上onTouchEvent.onKeyDown.onK ...