获取Flask请求的引用URL

时间:2015-02-18 20:26:02

标签: python flask http-referer

当用户访问我们的网站并注册时,我如何捕获他们来自哪个网站?

无论是搜索,公关网站等,我都不关心他们访问我们网站的页面,我只是想知道哪些营销活动给了我们最多的注册。

我知道Google Analytics可能会这样做,但我也希望内部有一些内容可供参考。

2 个答案:

答案 0 :(得分:10)

request.referrer包含请求来自的网址,但客户端可能会因各种原因发送该网址。

该属性从Referer(不是拼写错误!)标题中获取其值:

referrer = request.headers.get("Referer")

有关示例,请参阅https://realpython.com/blog/python/python-web-applications-with-flask-part-ii/#Deriving.data.from.visitors

答案 1 :(得分:3)

由于接受了答案,我设置了我的应用以捕获外部引荐来源并将其存储在session中。然后,当用户注册时,我将与用户保存该值。

from flask import request, g
from werkzeug.urls import url_parse

def referral():
    url = request.referrer

    # if domain is not mine, save it in the session
    if url and url_parse(url).host != "example.com":
        session["url"] = url

    return session.get("url")

@app.before_request
def before_request():
    g.user = current_user
    g.url = referral()