检测浏览器或脚本的简单方法

时间:2014-12-25 00:46:20

标签: python django

除了复杂性之外,在请求中检测该请求是由CLI程序(例如curl)发出的,或者是否是由浏览器发出的最简单的肮脏方法是什么?以下是我想弄清楚的事情:

def view(request):
    if request.is_from_browser:
        return HTML_TEMPLATE
    else:
        return JSON

2 个答案:

答案 0 :(得分:0)

HTTP请求标头中的某些内容,我首先尝试使用Accept标头。使用accept标头,客户端可以指定它想要的内容类型。这将责任放在客户端上。

答案 1 :(得分:0)

Request.is_ajax()检查HTTP_X_REQUESTED_WITH标头是否等于XMLHttpRequest。这正在成为 web 框架/库中的"行业标准" ,用于将 Ajax调用与正常请求分开。但这取决于客户端的合作实际设置标头。没有这种合作,没有100%万无一失的方法可以检测浏览器,客户端,Ajax等。

顺便问一下,为什么你需要知道什么叫?