簡體   English   中英

如何在Django視圖中處理Web和移動請求

[英]How to handle web and mobile requests in django view

我知道這是一個非常簡單的問題,但是我還不了解如何解決這個問題。

我有一個名為Restaurant的模型,其中包含有關餐廳的信息(名稱,位置等)。 我有一個視圖,用於處理對url localhost:8000 / restaurants的請求,並使用django-rest-framework返回餐廳的JSON表示形式。 我之所以這樣,是因為我正在使用Android應用程序中的數據。

現在,我想從網絡上訪問相同的URL,但是這次,我想看到帶有餐廳信息的完全呈現的html。

因此,我的具體問題是,如果兩個請求都指向相同的url和視圖,我如何知道(然后以JSON流或html響應)該請求是來自android應用還是來自Web瀏覽器?

您可以使用Django Rest Framework的TemplateHTMLRenderer 它根據請求的類型有條件地輸出JSON或HTML頁面。 您可以為正在使用的視圖定義以下屬性

class YourView(generics.TypOfView):
    renderer_classes = (TemplateHTMLRenderer, JSONRenderer,)
    template_name = 'path_to_template.html'

我還不能發表評論,所以將其張貼在答案中。

您可能想要嘗試按照Adam 在這里創建的中間件進行創建,並且在您的視圖中可以使用is_phone,is_tablet執行檢查,然后以適當的格式發送響應

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM