python - Flask:request.referrer 从外部 URL 引用时不返回
问题描述
Flask 和 Python 的新手。我已经克隆了一个 github Flask 聊天应用程序示例,并试图获取一个引用 URL(即用户在进入我的应用程序之前所在的 URL)。但是,当我在本地运行应用程序时,如果请求来自外部 URL ,则引用链接总是返回为None 。如果它是从应用程序内部发送的,我将获得正确的引荐来源网址。
这是相关的代码位。我试过查看以前的问题,但找不到解决方案。
我的路由逻辑:
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)
非常感谢任何建议。谢谢!
解决方案
推荐阅读
- c# - 检查sql server管理中是否存在相同的用户名.....如果是,请不要添加用户名
- indexing - 想在 Notepad++(或 Excel 或 Word)中的每个数字后插入换行符
- powershell - 从过滤的单个文件中输出多个文件
- angular - 在 Angular 中发出值,记录为 [object Object] 而不是值
- ios - iOS 13 静音模式通知/警报
- stop-words - TFIDVECTORIZER:所有文本都是导致错误的停用词
- docker - 如何将所有 Docker 日志发送到 Graylog
- python - 从 XML 获取 xsi 类型 - Python
- reactjs - 使用钩子和 react-select 时出现此错误:TypeError: Object(...) is not a function
- reactjs - Typescript + React - 没有重载匹配这个调用