获取 Flask 请求的引用 URL

Get referring URL for Flask request

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

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

我知道 Google 分析可能可以做到这一点,但我也希望有一些内部参考。

request.referrer 包含请求的来源 URL,尽管由于各种原因客户端可能不会发送它。

该属性的值来自 Referer(不是错字!)header:

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

或者,使用 Flask 快捷方式:

referrer = request.referrer

有关示例,请参阅 this tutorial

感谢接受的答案,我设置了我的应用程序以捕获外部引荐来源网址并将其存储在 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()