이 질문은 이전에 물어 보았습니다. 내가 본 것을 이미 끝 냈다고 생각합니다.하지만 내가 잘못하고있는 것을 정말로 모르겠습니다. 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이라고합니다. 나는 심지어 플라스크에 의해 생성 된 HTML을 체크했고 그것은 정확하다. 편집 : 댓글이 사라진 것으로 보입니다. 오 잘. – miscsubbin
안녕하세요 miscsubbin,이 자동 완성 기능을 구현하는 노력하고 있지만 그렇게 할 수 없습니다. 나는 또한 당신의 방법을 시도하고 아래에 제공된 해결책을 시도했다. request.args.get ('용어')에서 가치를 얻는 데 문제가 있습니다. 그 날은 항상 null입니다. 무슨 일이 일어나고 있는지 몰라. 작업 코드 스 니펫을 제공 할 수 있다면 좋을 것입니다. 미리 감사드립니다. – Pradeepb