javascript - Using a post request to grab filtered data from python flask and update current webpage -
so have web page displays list of open jobs on market. there's advanced search feature on webpage filters results, use post request in java script these inputs python route. i'm confused how connect these arguments , grab filtered data. send inputs front end python route. i'm not sure how filtered data backend frontend. make ajax call same app.route? can't call .render_template due project structure.
this i'm using front-end
$(document).ready(function () { $('#view_csr_search').click(function (event) { event.preventdefault(); var data = { role: $('#dropdown_option_1').val(), location: $('#location_drop_down').val(), mandatory_skills: $('#mandatory_field').val(), desired_skills: $('#desired_field').val() }; $.post('/jobs/search', json.stringify(data), function (data) { console.log('posted'); } ) }); }); the python app.route '/jobs/search/' takes data, , returns json object of data return. how grab data, when posts inputs? make normal ajax call same app route?
here's app route i'm using
@app.route('/jobs/search', methods=['post', 'put', 'get']) def filter_basic(): payload = request.json location = payload['location'] role = payload['role'] q = job.query # broad query q = job_api.role_filter(q, role) # returns filtered query of roles q = job_api.location_filter(q, location) # returns filtered query of location q = job_api.get_all_jobs(q) #returns list of dictionaries return flask.jsonify(q=q)
on client side, need set content type json flask can pick , serialize it.
$.ajax ({ url: "jobs/search", type: "post", data: data, datatype: "json", contenttype: "application/json; charset=utf-8", success: function(resp){ console.log(resp) //do json blob } }); now in flask:
@app.route("/jobs/search") def search_jobs(): payload = request.json # payload, dict
Comments
Post a Comment