Il mio obiettivo qui è di richiedere all'utente di compilare un modulo, inviare tali informazioni in una richiesta POST al server del pallone, quindi eseguire il rendering di un modello utilizzando tali informazioni del modulo (dopo averne subito alcune logica sul server).Fare un POST AJAX seguito da GET con Flask
Finora, ho completato la parte POST di tutto questo. Sto cercando di renderizzare un modello proprio ora all'interno del if request.method == POST'
, e suppongo che non funzioni proprio adesso.
Ecco il codice che ho finora:
@app.route('/filteredsearch/', methods = ["GET", "POST"])
def filteredsearch():
if request.method == 'POST':
data = json.loads(request.data)
tables = data['checkboxes']
filter_results = getFilteredEntities(tables = tables)
print filter_results #This works
return render_template("filteredsearch.html", entities = filter_results)
Devo fare un GET
richiesta separata sul successo della mia funzione POST
? Se sì, come lo farei?
Qui è la richiesta AJAX (se è importante, questo codice può essere chiamato su ogni singola pagina del app):
$.ajax({
url:"/filteredsearch/",
type: 'POST',
data: json,
contentType: 'application/json;charset=UTF-8',
success: function() {
alert("Done");
}
});
Così, idealmente posso rendere un template, mentre io sto postando. Se questo non è il caso, come faccio a fare una richiesta GET
dalla stessa funzione ajax?
So che in genere si utilizza url_for()
per una richiesta GET
, è un'opzione data che sono in JS a questo punto?
questa è una cosa pallone che ho perso? Ho bisogno di compilare il nuovo modello con una variabile (chiamata 'filtro_results' sopra). È una possibilità con il metodo che stai descrivendo? –
Non proprio. Questa è una cosa di sviluppo web. Se vuoi solo fare una richiesta di post e poi rispondere con un modello renderizzato, non farlo come una richiesta AJAX. Basta usare un modulo html con un pulsante di invio. http://www.w3schools.com/html/html_forms.asp – aychedee
Ma ho bisogno di fare lavoro sul lato server. Non significa che ho bisogno di usare AJAX –