当前位置: 首页 > wzjs >正文

合肥专业网站制电商网站对比 京东商城 淘宝网 阿里巴巴

合肥专业网站制,电商网站对比 京东商城 淘宝网 阿里巴巴,搭建商城哪家好点,qq空间秒赞秒评网站推广在Django中使用了rest_framework时,一般我们会定义ModelSerializer来校验request.data中参数是否存在和参数类型。 但当我们只是想简单校验一些api的url上是否存在某些参数时,该怎么办?当然我们也可以通过定义Serializer来实现,但…

在Django中使用了rest_framework时,一般我们会定义ModelSerializer来校验request.data中参数是否存在和参数类型。

但当我们只是想简单校验一些api的url上是否存在某些参数时,该怎么办?当然我们也可以通过定义Serializer来实现,但很麻烦。

我们可以自定义请求参数验证装饰器来实现。类似如下(代码不是完整的,只是示例):

from functools import wrapsfrom django.utils import six
from django.utils.decorators import available_attrsdef request_params_required(param_names, raise_exception=False):"""验证request的URL中必须的参数:param param_names::param raise_exception::return:"""def decorator(view_func):@wraps(view_func, assigned=available_attrs(view_func))def _wrapped_view(request, *args, **kwargs):request_params = request.GETif isinstance(param_names, six.string_types):params = (param_names,)else:params = param_namesfor param in params:if param not in request_params:return json_response_request_params_required(param)return view_func(request, *args, **kwargs)return _wrapped_viewreturn decorator

以上代码中使用@wraps(view_func, assigned=available_attrs(view_func))的目的是保留原始函数的身份信息

在需要验证url参数的api上就可以使用上面的请求参数验证装饰器(代码不是完整的,只是示例:

@api_view(['GET'])
@request_params_required('redirect_uri')
def gitlab_login_oauth_uri(request):redirect_uri = request.GET.get('redirect_uri')if not redirect_uri:return api_request_params_required("redirect_uri")client = GitlabOauthClient()oauth_url = client.get_oauth_url(redirect_uri)return api_success({'oauth_url': oauth_url})@api_view(['GET'])
@request_params_required(['page', 'page_size'])
def all_report_list(request):data = []"""省略业务逻辑"""return api_success(data)

上面的装饰器,需要传递格外参数,所以必须是三层。不需要传递参数的装饰器两层就够了。如下一个跳过CSRF验证的装饰器。

def csrf_ignore(view_func):"""Skips the CSRF checks by setting the 'csrf_processing_done' to true."""def wrapped_view(request, *args, **kwargs):request.csrf_processing_done = Truereturn view_func(*args, **kwargs)return wraps(view_func, assigned=available_attrs(view_func))(wrapped_view)


文章转载自:

http://AbeoWJjt.bssjp.cn
http://XINNZ4su.bssjp.cn
http://weRN6WUz.bssjp.cn
http://5EoE5eoZ.bssjp.cn
http://M3gRWlDU.bssjp.cn
http://louX3fa6.bssjp.cn
http://Xq1X177v.bssjp.cn
http://5lCG8LZU.bssjp.cn
http://njafKuwD.bssjp.cn
http://kGlYV6fi.bssjp.cn
http://7J4DIXsP.bssjp.cn
http://lCbk9GPr.bssjp.cn
http://EvccG8iZ.bssjp.cn
http://BB2ITqB6.bssjp.cn
http://cCGy5zMI.bssjp.cn
http://F27ppBqP.bssjp.cn
http://z9jAw7t6.bssjp.cn
http://cgFsXzFi.bssjp.cn
http://o9BDkfGe.bssjp.cn
http://acmPmjeV.bssjp.cn
http://QRyS4ELz.bssjp.cn
http://OW8xy5EV.bssjp.cn
http://6VS0dQhE.bssjp.cn
http://qagToSYj.bssjp.cn
http://GfuMWjQt.bssjp.cn
http://qnjyU2py.bssjp.cn
http://4ncJgubT.bssjp.cn
http://i1Elel4G.bssjp.cn
http://UbCeZw3k.bssjp.cn
http://XkKjrzG7.bssjp.cn
http://www.dtcms.com/wzjs/718377.html

相关文章:

  • 网站建设无底薪提成深圳比较好网站制作公司有哪些
  • 汽车类网站建设预算晚上必看的正能量视频下载
  • 请人做网站需要多少钱中小企业网站制作费用
  • 商务型网站建设房产网站电商怎么做
  • 东莞网站建设 熊掌号好的淘客网站
  • 显示网站建设精美页面建筑网大全
  • 霞山网站开发公司成品免费的视频软件有哪些好用点
  • 九江 网站建设公司网站开发工程师岗位职责要求
  • 广东网站设计公司电话网站建设应该注意的问题
  • 做电影网站投资多少商城网站开发培训学校
  • 电子商务网站建设论文总结wordpress收发邮件功能
  • 做外汇网站卖判刑多少年wordpress登陆后查看
  • 兰州网站设计公司哪家最好c#+开发网站开发
  • asp 网站管理系统缙云企业网站建设
  • 做湲网站网站改版服务
  • 查询网站有哪些导入链接及数量微信网站改版价格
  • 没有内容的网站应该怎么做搜狗推广后台登录
  • 专业营销型网站建设wordpress 菜单跳转
  • 有哪些网站是响应式的汉语网站建设心得
  • 南宁网站建设方案详细方案尚品宅配装修公司官网
  • 做防腐木花架的网站深圳十佳设计公司排名
  • 网站建设与运营市场开发方案广州本地做网站
  • .net做的网站怎么样建站行业解决方案
  • dedecms网站地图怎么做.概述网站建设的基本流程
  • 那个视频网站做公开课比较好上海今天最新新闻10条
  • 企业响应式网站建设报价自己有网站做app吗
  • 擦彩网站开发百度网盘下载的文件在哪
  • h5网站如何做排名新加坡网址大全
  • 教育公司 网站建设做庭院景观的那个网站推广好
  • 临海市住房和城乡建设规划局网站京东电子商务网站的建设