Python Flask Jquery Ajax Autocomplete
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #app.py from flask import Flask, Response, render_template, request import json from wtforms import TextField, Form app = Flask(__name__) class SearchForm(Form): autocomp = TextField( 'Insert City' , id = 'city_autocomplete' ) @app .route( '/_autocomplete' , methods = [ 'GET' ]) def autocomplete(): cities = [ "Olongapo City" , "Angeles City" , "Manila" , "Makati" , "Pasig" , "Davao" , "Cebu" , "Quezon City" , "Taguig" ] print (cities) return Response(json.dumps(cities), mimetype = 'application/json' ) @app .route( '/' , methods = [ 'GET' , 'POST' ]) def index(): form = SearchForm(request.form) return render_template( "search.html" , form = form) if __name__ = = '__main__' : app.run(debug = True ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | //search.html <head> <meta charset= "utf-8" > <title>Python Flask Jquery Ajax Autocomplete</title> </head> <body> {{ form.autocomp.label }}: {{ form.autocomp }} <script> $( function () { $.ajax({ url: '{{ url_for("autocomplete") }}' }).done( function (data){ $( '#city_autocomplete' ).autocomplete({ source: data, minLength: 2 }); }); }); </script> </body> </html> |