我发现了这个问题(How to display a list of "latest pages visited"),关于如何显示在轨道上访问ruby的最新页面列表。怎么用烧瓶做这个?你使用网址吗?代码看起来像这样,我也使用Heroku。
app = Flask(__name__)
app.secret_key = 'supersecretkey'
def login():
session['username'] = "someuser"
session['urls'] = []
@app.after_request
def store_visted_urls():
session['urls'].append(request.url)
if(len[session['urls']) > 5:
session['urls'].pop(0)
session.modified = True
@app.route('/')
def index():
data = []
if 'urls' in session:
data = session['urls']
return render_template('page1.html',data=data)
@app.route('/page2', endpoint='page2')
def index():
return render_template('page2.html')
@app.route('/page3', endpoint='page3')
def index():
return render_template('page3.html')
if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
我希望在每个页面(第1页,第2页,第3页)上都有一个部分显示最后访问的页面。
另外,在这个问题上(Show recently visited html pages by any visitor)有人建议使用cookies。这是一个更好的方法吗?
答案 0 :(得分:0)
如果要存储用户的页面访问/ URL历史记录,则可以使用会话。每次请求后,将访问过的URL存储在会话中。类似的东西:
必须将app.secret_key = 'some secret key'
def login():
session['username'] = "someuser"
session['urls'] = []
@app.after_request
def store_visted_urls():
session['urls'].append(request.url)
if(len[session['urls']) > 5:
session['urls'].pop(0)
session.modified = True
@app.route('/')
def index():
data = []
if 'urls' in session:
data = session['urls']
return render_template('page1.html',data=data)
答案 1 :(得分:0)
尝试一下:
url = request.url
if 'urls' in session:
urls_list = session['urls']
if not url in urls_list:
urls_list.append(url)
if len(urls_list) > 5:
urls_list.pop(0)
session['urls'] = urls_list
else:
session['urls'] = [url]