当请求来自浏览器时呈现HTML或当请求来自移动设备时发送JSON词典

时间:2019-04-02 17:21:15

标签: python django python-3.x responsive-design django-rest-framework

我正在尝试为同时具有Web前端(使用Bootstrap设计)和移动前端(使用Flutter设计)的应用构建后端。

我一直在尝试了解有关渲染器的Django REST Framework文档,但是我无法弄清楚如何在没有两个不同请求的情况下处理不同类型的请求(例如来自Web的请求和来自移动设备的请求)两种平台都可以使用。

是否有比在请求中传递一个标志(表明应用程序是移动还是网络)并根据该标志的值返回Response对象或render对象更好的方法?

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式来拆分两个动作,如下所示:

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

答案 1 :(得分:0)

您可以使用请求标头来确定您的请求来自哪种设备,并相应地返回数据。更具体地说,User Agent