我是英語,Python和Flask的全新產品,如果我編寫非常糟糕的東西,我很抱歉。從js代碼傳遞變量到db中的瓶子或類似的東西
我有以下任務:當用戶轉到pfofile.html
時,頁面將加載一個來自數據庫的值。 如果用戶更改顏色,則啓動JavaScript功能(調用onchange()
)。 我必須編寫更改數據庫中的字段text_color_in_chat
的代碼。 我以爲我做得很好,但我有以下錯誤:jinja2.exceptions.UndefinedError: 't' is undefined
。 我不明白我如何通過使用Flask將JavaScript中的「t」變量傳遞給Python,或者如何正確調用大括號枷鎖{{}}
。
<script type="text/javascript" charset="utf-8">
function change_color(t) {
alert({{ current_user.change_color_in_db(t.value) }});
}
</script>
<div>
Check your color in chat:
<input type="color" value="{{ user.text_color_in_chat }}" onchange="change_color(this);">
</div>
這裏是一塊我models.py
:
...
text_color_in_chat = db.Column(db.String(8), default='#000000')
...
def change_color_in_db(self, new_color):
# re.search(r'^#[0-9a-f]{6,6}$', "#000000"
self.text_color_in_chat = new_color
db.session.add(self)
return True
...
而且在我的Python功能,我用正則表達式測試變量new_color
。如果不匹配,則返回None
,否則返回該對象。而且,我不明白如何使用if
條件。
你的英語不是很好,但我盡我所能翻譯你的問題。我想我明白你想要什麼。只是告訴我,如果不清楚。 –
如何從js函數「change_color()」更改數據庫中的字段? –
and about RegEx我想現在如何正確地創建條件,如果re.search(r'^#[0-9a-f] {6,6} $',str):更改db中的數據else:不會更改並提醒關於錯誤str。其中「str」是預期的十六進制顏色代碼。 –