当请求来自浏览器或在请求来自移动设备时发送JSON字典时呈现HTML
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当请求来自浏览器或在请求来自移动设备时发送JSON字典时呈现HTML相关的知识,希望对你有一定的参考价值。
我正在尝试为具有Web前端(设计有引导程序)和移动前端(使用Flutter设计)的应用程序构建后端。
我一直在尝试理解Django REST Framework关于渲染器的文档,但我无法弄清楚如何处理不同类型的请求(例如,一个来自Web,一个来自移动,而不是两个不同的功能)平台。
有没有更好的方法来做这个,而不是通过请求传递一个标志,说明该应用程序是移动还是Web,并根据该标志的值返回一个Response对象或渲染对象?
答案
您可以使用将拆分两个操作的正则表达式,如下所示:
def mobile(request):
"""Return True if the request comes from a mobile device."""
IS_MOBILE=re.compile(r".*(iphone|mobile|androidtouch)",re.IGNORECASE)
if IS_MOBILE.match(request.META['HTTP_USER_AGENT']):
return True
else:
return False
另一答案
您可以使用请求标头来确定您的请求来自哪种设备并相应地返回您的数据。更具体地说,User Agent
以上是关于当请求来自浏览器或在请求来自移动设备时发送JSON字典时呈现HTML的主要内容,如果未能解决你的问题,请参考以下文章
如何在rails中处理来自应用程序控制器的无效真实性令牌json请求