tôi đang cố gắng để tạo ra một cái gì đó giống như Google Suggest Tool (thông qua đề nghị api http://suggestqueries.google.com/complete/search?output=toolbar&hl=ru&q=query)Flask động cập nhật dữ liệu mà không cần tải lại trang
Tôi đang lắng nghe những thay đổi đầu vào, và gửi dữ liệu đi GET:
$("#search_form_input").keyup(function(){
var some_var = $(this).val();
$.ajax({
url: "",
type: "get", //send it through get method
data:{jsdata: some_var},
success: function(response) {
},
error: function(xhr) {
//Do Something to handle error
}
});
Sau đó tôi đang xử lý dữ liệu này và gửi nó đến Google API và có phản ứng bằng Python:
@app.route('/', methods=['GET', 'POST'])
def start_page_data():
query_for_suggest = request.args.get('jsdata')
if query_for_suggest == None:
suggestions_list = ['',]
pass
else:
suggestions_list = []
r = requests.get('http://suggestqueries.google.com/complete/search?output=toolbar&hl=ru&q={}&gl=in'.format(query_for_suggest), 'lxml')
soup = BeautifulSoup(r.content)
suggestions = soup.find_all('suggestion')
for suggestion in suggestions:
suggestions_list.append(suggestion.attrs['data'])
print(suggestions_list)
return render_template('start_page.html', suggestions_list=suggestions_list)
trong Jinja cố gắng để in nó trong HTML động:
<label id="value_lable">
{% for suggestion in suggestions_list %}
{{ suggestion }}
{% endfor %}
</label>
Nhưng biến trong Jinja không cập nhật động và in danh sách trống.
Làm cách nào để in đề xuất từ danh sách động trong HTML?
trong JavaScript 'của bạn thành công: 'chức năng là trống rỗng vì vậy bạn không phải làm gì với dữ liệu từ Flask. – furas
Tôi cần sửa chữa những gì? –
Tôi nghĩ bạn không biết AJAX/JavaScript hoạt động như thế nào. JavaScript gửi dữ liệu đến Flask, Flask gửi lại một số dữ liệu - tốt hơn như JSON - và JavaScript nhận dữ liệu này và cập nhật HTML trong trình duyệt. – furas