0

ruby on railsで最近訪れたページの一覧を表示する方法についての質問( 「最近訪れたページ」の一覧を表示する方法)を見つけました。これをフラスコでどのようにしますか?URL マップを使用していますか? コードはこのようなもので、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)

各ページ (page1、page2、page3) に、最後にアクセスしたページを表示するセクションが必要です。

また、この質問 (訪問者が最近アクセスした html ページを表示する) で、誰かが Cookie の使用を提案しました。それはより良い方法ですか?

4

2 に答える 2

0

ユーザーのページ訪問/URL 履歴を保存する場合は、セッションを使用できます。リクエストごとに、訪問した URL をセッションに保存します。何かのようなもの:

セッションを使用するには秘密鍵を設定する必要があります

app.secret_key = 'some secret key'

セッション変数を初期化できるログイン機能。

def login():
    session['username'] = "someuser"
    session['urls'] = []

以下の関数は、after_request デコレータを使用して、ユーザー リクエストごとに訪問した URL を保存します。

@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)
于 2012-11-15T21:40:15.107 に答える