Get referring URL for Flask request

☆樱花仙子☆ 提交于 2019-11-30 18:57:41
Selcuk

request.referrer contains the URL the request came from, although it might not be sent by the client for various reasons.

The attribute takes its value from the Referer (not a typo!) header:

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

See https://realpython.com/blog/python/python-web-applications-with-flask-part-ii/#Deriving.data.from.visitors for an example.

Robert Guice

Thanks to the accepted answer, I set up my app to capture an external referrer and store it in the session. Then when the user signs up I save that value with the user.

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()
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!