日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

flask和ajax,Flask flash和url_用于AJAX

發布時間:2025/3/20 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flask和ajax,Flask flash和url_用于AJAX 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我目前陷入了一個相當“大”的問題,我會盡量做到清晰和簡潔。

我正在用Python開發一個工具,使用Flask。它應該是一個內部網。我的想法是我有一個客戶頁面。有它的名字,許多其他信息,和一個龐大的清單。

信息已經寫入輸入字段,因此用戶只需在那里編輯它們,按enter鍵,頁面就會重新加載已編輯的信息(使用閃爍的消息和咆哮發出通知)。

這個龐大的清單迫使我使用AJAX遷移到一個系統,因為我希望它在用戶勾選框和輸入內容時“實時”更新,而不必重新加載頁面。

因此,我還將infos的基本輸入轉換為AJAX,以避免重新加載mage。

我遇到了兩個問題:

第一個是Flask的消息閃爍功能。我有一個方法可以更新數據庫中的客戶機名稱,閃爍一條消息(成功或失敗,取決于許多事情),然后再次顯示頁面。為了避免頁面重新加載,我使用AJAX管理表單提交。

問題是,我的python方法將刷新消息。一旦我回到我的html頁面(因為它是AJAX,所以沒有被重新加載),Jinja2的get flashed消息函數就不會返回任何東西,因為它沒有被更新。因此,我不可能找回那些閃現的信息。

我怎樣才能拿到這些?我看到的唯一解決方案是去掉flash的任何用法,編寫我自己的消息sysème,我將從該方法返回,然后用javascript處理。這看起來難以置信的愚蠢,因為flash是Flask的一個特性,它被AJAX變成了“無用的”?我覺得我好像錯過了什么。

(注意,到目前為止,我的flashed消息管理是在我的基本布局中進行的,它調用一個貫穿所有消息并顯示為咆哮通知的模板)

第二個問題涉及url。這是我的表單,用于編輯客戶名稱:

如您所見,action屬性使用url_for調用正確的方法來編輯客戶機。我的方法是這樣的:@mod.route('/edit//', methods=['POST'])

def edit_client_name(name):

所以url路徑是/edit/the_client_name。因此,在編輯之后,如果要重新編輯此名稱,則新URL是/edit/the_new_client_name。

顯然,一旦調用了方法,我的AJAX就必須更改這個action屬性,用新的URL替換它(以防用戶希望在不更改頁面/重新加載頁面的情況下重新編輯名稱)。這是我的第二期。

新名稱存儲在javascript中。操作仍然是舊的url。因此,我必須調用url_來使用新名稱。我發現完全沒有辦法將Javascript變量傳遞給Jinja2。

我要這個:url_for('clients.edit_client_name', name=client.name)

變成這樣:url_for('clients.edit_client_name', name=my_javascript_variable_one_way_or_another)

我只需要調用js函數來修改表單的一個屬性,然后用這個新的url修改我的action屬性,但是我沒有辦法做這個簡單的事情,比如給Jinja2一個javascript變量,這在我看來是不太可能的。

這是我的兩個問題。如何使flash與AJAX兼容?如何將javascript屬性傳遞給Jinja2?

我真心希望能找到解決這兩個“愚蠢”問題的辦法。我能看到的唯一解決方案是編寫我自己的消息傳遞系統,這將挫敗flash的目標,使它與看起來愚蠢的AJAX無用,并在我的模板中硬編碼URL,這完全挫敗了Flask使URL獨立于方法的最初興趣,URL的更改非常靈活。

謝謝。

總結

以上是生活随笔為你收集整理的flask和ajax,Flask flash和url_用于AJAX的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。