簡體   English   中英

Flask - 獲取點擊的鏈接信息並顯示在渲染頁面上

[英]Flask - Get clicked link info and display on rendered page

如何將點擊鏈接的文本獲取到 app.route 函數中?

例如:假設我有一個鏈接列表,所有這些鏈接都指向相同的 url,但每個鏈接加載不同的內容。

<li><a href="/animals">cat</a></li>
<li><a href="/animals">dog</a></li>
<li><a href="/animals">dragon</a></li>

當我單擊“貓”時,我需要檢索“貓”這個詞以及 /animals 的渲染模板

@app.route('/animals', methods=['GET', 'POST'])
def animals():
    selected_animal = get_clicked_animal_name_from_previous_page()
    return render_template(animals.html', title='Animal Details', animal=selected_animal)

像 get_clicked_animal_name_from_previous_page() 這樣的函數可能嗎?

您可以像這樣通過request.args傳遞參數:

<li><a href="{{url_for('animals', type='cat')}}">cat</a></li>
<li><a href="{{url_for('animals', type='dog')}}">dog</a></li>
<li><a href="{{url_for('animals', type='dragon')}}">dragon</a></li>

並像這樣接收它:

@app.route('/animals', methods=['GET', 'POST'])
def animals():
    selected_animal = request.args.get('type')
    print(selected_animal) # <-- should print 'cat', 'dog', or 'dragon'
    return render_template(animals.html, title='Animal Details', animal=selected_animal)

您可以稍微更改每只animalhref以重定向到animals/<animal>路線。 這樣, <animal_type>將被傳遞給路由函數以供以后使用:

<li><a href="/animals/cat">cat</a></li>
<li><a href="/animals/dog">dog</a></li>
<li><a href="/animals/dragon">dragon</a></li>

然后,在應用程序中:

@app.route('/animals/<animal>', methods=['GET'])
def animals(animal):
  return render_template('animals.html', title='Animal Details', animal=animal)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM