這個問題之前已經問過了,我想我已經完成了我在那裏看到的所有內容,但是我並不知道自己做錯了什麼。我對jQuery瞭解不多,但我會盡我所能解釋我正在嘗試做什麼。在Flask中使用jQuery自動完成
我想根據從數據庫中查詢到自動完成,所以我有這個在我的模板:
<script type="text/javascript">
$(function() {
$("#function_name").autocomplete({
source: '{{url_for("autocomplete")}}',
minLength: 2,
});
});
</script>
<form id="function_search_form" method="post" action="">
{{form.function_name}}
</form>
由該瓶窗體類生成的表單:
class SearchForm(Form):
function_name = TextField('function_name', validators = [Required()])
這裏是自動完成功能:
@app.route('/autocomplete')
def autocomplete():
results = []
search = request.args.get('term')
results.append(db.session.query(Table.Name).filter(Table.Name.like('%' + search + '%')).all())
return dumps(results)
所以jQuery應該去自動完成功能和ge用一些JSON返回到自動完成。至少我認爲這是怎麼回事。我在這裏做錯了什麼?
@morphyn是的。它被稱爲function_name。我甚至檢查了Flask生成的HTML,它是正確的。 編輯:看來,評論已經消失。好吧。 – miscsubbin
嗨miscsubbin,我試圖實現此自動完成功能,但我無法這樣做。我也嘗試了您的方法,並嘗試了下面提供的解決方案。但我在request.args.get('term')中獲得價值時遇到問題。它對我來說總是空的。不知道發生了什麼。如果你能提供你的工作代碼片段,那將是非常好的。提前致謝。 – Pradeepb