2

New to Flask and Python. I've cloned a github Flask chat app example and am trying to get a referrer URL (i.e. the URL the user was in before going into my app). However, when I run the app locally, the referrer link always come back as None if the request comes from an external URL. If it is sent from within the app, I am getting the right referrer URL.

Here's the relevant bits of code. I've tried looking at previous questions, but couldn't find a solution.

My routing logic:

from flask import session, redirect, url_for, render_template, request
from . import main
from .forms import LoginForm

@main.before_request
def before_request():
    print("Ref1:", request.referrer)
    print("Ref2:", request.values.get("url"))

@main.route('/', methods=['GET', 'POST'])
def index():
    form = LoginForm()
    ip_address = request.access_route[0] or request.remote_addr
    print("ip_addr:", ip_address)

    if form.validate_on_submit():
        session['name'] = form.name.data
        session['room'] = form.room.data
        return redirect(url_for('.chat'))
    elif request.method == 'GET':
        form.name.data = session.get('name', '')
        form.room.data = session.get('room', '')
    return render_template('index.html', form=form)


@main.route('/chat')
def chat():
    name = session.get('name', '')
    room = session.get('room', '')
    if name == '' or room == '':
        return redirect(url_for('.index'))
    return render_template('chat.html', name=name, room=room)

My main app code is:

#!/bin/env python
from app import create_app, socketio

app = create_app(debug=True)

if __name__ == '__main__':
    socketio.run(app)

Would really appreciate any advice. Thanks!

CallMeJack
  • 21
  • 1
  • Seems to be a duplicate of this question: https://stackoverflow.com/questions/28593235/get-referring-url-for-flask-request Hope that helps answer your question. – Anthony Rolfe Oct 04 '21 at 20:12

0 Answers0