python DRF获取参数介绍
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
python DRF获取参数介绍的更多相关文章
- python print的参数介绍
参考print的官方文档 print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints th ...
- DRF框架获取参数的方式
DRF获取参数的方式 例如url url(r'^demo/(?P<word>.*)/$', DemoView.as_view()) 在类视图中获取参数 url:http://127.0.0 ...
- python 函数参数介绍
python 函数参数介绍 python 使用过程总,总会遇到 *args,**kw形式的参数,总是一头雾水,而且网上介绍的或是叫法不一,为此专门深入实践进而了解了函数参数的使用 具体请看代码 #-* ...
- python命令行获取参数
python命令行获取参数 import sys # python获取参数 input_file = sys.argv[1] output_file = sys.argv[2] print(input ...
- SQLMAP参数介绍
转自:http://zhan.renren.com/bugpower?gid=3602888498044629629&checked=true SQLMAP参数介绍 sqlmap的使用方式:p ...
- Python中获取异常(Exception)信息
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...
- Linux下查看某个进程打开的文件数-losf工具常用参数介绍
Linux下查看某个进程打开的文件数-losf工具常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux操作系统中,一切皆文件.通过文件不仅仅可以访问常规数据,还 ...
- Python 基于python操纵redis入门介绍
基于python操纵redis入门介绍 by:授客 QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3.3.2 基于Python操作R ...
- spark优化系列一:参数介绍
1 spark on yarn常用属性介绍 属性名 默认值 属性说明 spark.yarn.am.memory 512m 在客户端模式(client mode)下,yarn应用master使用的内存数 ...
随机推荐
- 121. Best Time to Buy and Sell Stock 买卖股票的最佳时机
网址:https://leetcode.com/problems/Best-Time-to-Buy-and-Sell-Stock/ 第一想法是滑动窗口法,稍微尝试后发现不可行,至少我不会... 而后想 ...
- fastjson SerializerFeature详解(转)
原文地址:fastjson SerializerFeature详解
- 【LeetCode】数值运算(除法、乘方)
C/C++数字范围(32位系统) ~ // 1 字节 char // 1 字节 ~ // 2 字节 - // 4 字节 unsigned: - // 4 字节 size_t: ~ // 4 字节 - ...
- 平面最近点对模板[luogu P1429]
%:pragma GCC optimize() #include<bits/stdc++.h> #define DB double #define m (((l)+(r))>> ...
- Hadoop--单点故障修复
nameNode单点故障修复 1.启动虚拟机,启动集群 此时我们将主机hadoop1关机(断掉主机),开始抢救: 1.使用 秘书(secondaryNameNode),成功率不是100% (这里我 ...
- Docker 容器和镜像使用
Docker 容器使用: docker run -d -P training/webapp python app.py -d:让容器在后台运行. -P:将容器内部使用的网络端口映射到我们使用的主机上. ...
- PyCharm+QTDesigner+PyUIC使用教程
我们在PyCharm安装配置Qt Designer+PyUIC教程中已配置好了PyCharm+QTDesigner+PyUIC环境 这里在此基上我们演示如何使用这些工具,编写一个图形界面程序: 程序主 ...
- php读取excel时间42930转化为时间然后正则验证时间是否通过
excel时间 function exceltimtetophp($days,$time=false) { if(is_numeric($days)) { //凯撒日计数,要把我们运用的从1970年开 ...
- Oracle.练习题
2018-07-31 ---练习3 ---创建sporter表 create table sporter( sporterid ) constraint sport_id primary key, s ...
- POJ 1936 All in All 匹配, 水题 难度:0
题目 http://poj.org/problem?id=1936 题意 多组数据,每组数据有两个字符串A,B,求A是否是B的子串.(注意是子串,也就是不必在B中连续) 思路 设置计数器cnt为当前已 ...