Fiaschetta - Sijax
Sijax sta per ‘Simple Ajax’ ed è un file Python/jQuery libreria progettata per aiutarti a portare facilmente Ajaxalla tua applicazione. UtilizzajQuery.ajax per effettuare richieste AJAX.
Installazione
L'installazione di Flask-Sijax è semplice.
pip install flask-sijax
Configurazione
SIJAX_STATIC_PATH- il percorso statico in cui si desidera eseguire il mirroring dei file javascript Sijax. La posizione predefinita èstatic/js/sijax. In questa cartella,sijax.js e json2.js i file vengono conservati.
SIJAX_JSON_URI - l'URI da cui caricare il file statico json2.js
Sijax utilizza JSONper passare i dati tra il browser e il server. Ciò significa che i browser devono supportare entrambiJSON nativamente o ottenere JSON supporto da json2.js file.
Le funzioni registrate in questo modo non possono fornire Sijax funzionalità, perché non è possibile accedervi utilizzando un file POST per impostazione predefinita (e Sijax utilizza le richieste POST).
Fare un View funzione in grado di gestire Sijax richieste, renderlo accessibile tramite POST utilizzando @app.route('/url', methods = ['GET', 'POST']) o usa il @flask_sijax.route decoratore aiutante come questo -
@flask_sijax.route(app, '/hello')
Ogni funzione del gestore Sijax (come questa) riceve automaticamente almeno un parametro, proprio come Python passa "self" ai metodi dell'oggetto. Il‘obj_response’ parametro è il modo in cui la funzione risponde al browser.
def say_hi(obj_response):
obj_response.alert('Hi there!')
Quando viene rilevata la richiesta Sijax, Sijax la gestisce in questo modo:
g.sijax.register_callback('say_hi', say_hi)
return g.sijax.process_request()
Applicazione Sijax
Un codice dell'applicazione Sijax minimo ha il seguente aspetto:
import os
from flask import Flask, g
from flask_sijax import sijax
path = os.path.join('.', os.path.dirname(__file__), 'static/js/sijax/')
app = Flask(__name__)
app.config['SIJAX_STATIC_PATH'] = path
app.config['SIJAX_JSON_URI'] = '/static/js/sijax/json2.js'
flask_sijax.Sijax(app)
@app.route('/')
def index():
return 'Index'
@flask_sijax.route(app, '/hello')
def hello():
def say_hi(obj_response):
obj_response.alert('Hi there!')
if g.sijax.is_sijax_request:
# Sijax request detected - let Sijax handle it
g.sijax.register_callback('say_hi', say_hi)
return g.sijax.process_request()
return _render_template('sijaxexample.html')
if __name__ == '__main__':
app.run(debug = True)
Quando un Sijax richiede (un file speciale jQuery.ajax() richiesta) al server, questa richiesta viene rilevata sul server da g.sijax.is_sijax_request(), nel qual caso lasci Sijax gestire la richiesta.
Tutte le funzioni registrate utilizzando g.sijax.register_callback() sono esposti per la chiamata dal browser.
Chiamando g.sijax.process_request() dice a Sijax di eseguire la funzione appropriata (precedentemente registrata) e di restituire la risposta al browser.