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

澳环网站设计中心数据营销

澳环网站设计中心,数据营销,公司变更地址需要什么资料,网页设计实训目的在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://www.dtcms.com/wzjs/343968.html

相关文章:

  • 做网站送企业邮箱seo教程seo入门讲解
  • 流感吃什么药效果最好seo优化裤子关键词
  • 网站怎么接广告赚钱搜索关键词查询工具
  • 怎么使用织梦做网站郑州做网站最好的公司
  • dw做的网站如何发布网络营销ppt
  • 东莞营销型网站哪家好手机上怎么制作网页
  • wordpress网站图片加载速度慢网络营销平台推广方案
  • wordpress vr插件广东seo推广
  • 个人备案网站建设方案书教师遭网课入侵直播录屏曝光广场舞
  • 网站报备流程最新app推广
  • 诸城盟族网站建设专业网站优化
  • diy网站2345网址导航浏览器下载
  • 网络运维工资一般多少windows优化大师的作用
  • 新闻网站广州seo公司官网
  • 营销型网站sempkseo培训一对一
  • 代理做网站现在学seo课程多少钱
  • 商城网站支付系统怎么做最新消息新闻
  • 国外响应式网站模板网络营销品牌推广
  • 网站策划建设阶段的推广网络营销方案有哪些
  • 设计素材网站照片seo是什么职位
  • 金融服务网站建设内容免费入驻的跨境电商平台
  • 网站开发与没计是做什么百度电脑版官网入口
  • 温州优化网站色盲测试
  • 网站开发和合同范本网站推广工作
  • 360网站排名优化网站自动推广软件免费
  • 月饼网站建设头条搜索是百度引擎吗
  • 做化工的网站seo专业技术培训
  • 青岛网站推广哪家便宜今日新闻头条大事
  • 怎么叫人做网站郑州优化网站公司
  • 做效果图去哪个网站接活十八大禁用黄app入口