Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask:request.Referer从外部URL引用时返回none_Python_Flask - Fatal编程技术网

Python Flask:request.Referer从外部URL引用时返回none

Python Flask:request.Referer从外部URL引用时返回none,python,flask,Python,Flask,对Flask和Python来说是新的。我克隆了一个github Flask聊天应用程序示例,并尝试获取一个推荐人URL(即用户在进入我的应用程序之前所在的URL)。但是,当我在本地运行应用程序时,如果请求来自外部URL,那么referer链接总是返回为None。如果它是从应用程序内发送的,我将获得正确的推荐人URL 下面是相关的代码位。我试过看前面的问题,但找不到解决方案 我的路由逻辑: from flask import session, redirect, url_for, render_t

对Flask和Python来说是新的。我克隆了一个github Flask聊天应用程序示例,并尝试获取一个推荐人URL(即用户在进入我的应用程序之前所在的URL)。但是,当我在本地运行应用程序时,如果请求来自外部URL,那么referer链接总是返回为None。如果它是从应用程序内发送的,我将获得正确的推荐人URL

下面是相关的代码位。我试过看前面的问题,但找不到解决方案

我的路由逻辑:

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)

我的主要应用程序代码是:

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

app = create_app(debug=True)

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

非常感谢您的建议。 谢谢