Python 当请求来自浏览器时呈现HTML或当请求来自移动设备时发送JSON字典
我正在尝试为一个应用程序构建一个后端,它既有一个用bootstrap设计的web前端,也有一个用Flutter设计的移动前端 我一直在试图理解Django REST框架关于渲染器的文档,但是我不知道如何处理不同类型的请求,例如,如果两个平台都没有两个不同的功能,一个来自web,一个来自mobilePython 当请求来自浏览器时呈现HTML或当请求来自移动设备时发送JSON字典,python,django,python-3.x,responsive-design,django-rest-framework,Python,Django,Python 3.x,Responsive Design,Django Rest Framework,我正在尝试为一个应用程序构建一个后端,它既有一个用bootstrap设计的web前端,也有一个用Flutter设计的移动前端 我一直在试图理解Django REST框架关于渲染器的文档,但是我不知道如何处理不同类型的请求,例如,如果两个平台都没有两个不同的功能,一个来自web,一个来自mobile 有没有更好的方法来实现这一点,而不是在请求中传递一个标志,表明该应用程序是移动的还是web的,并根据该标志的值返回响应对象或渲染对象?您可以使用一个正则表达式来拆分这两个操作,如下所示: def mo
有没有更好的方法来实现这一点,而不是在请求中传递一个标志,表明该应用程序是移动的还是web的,并根据该标志的值返回响应对象或渲染对象?您可以使用一个正则表达式来拆分这两个操作,如下所示:
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
您可以使用请求头来确定您的请求来自哪种设备,并相应地返回数据。更具体地说,我是否需要返回响应或渲染取决于此?我是否需要返回两个不同的对象取决于此?这取决于您,您可以使用mobileyour_请求:和else:然后您决定要执行的操作,在这种情况下,返回一个响应对象或渲染对象我想这就是你想要的。