English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Sijax rappresenta 'Simple Ajax', è una libreria Python/jQuery progettata per aiutare gli sviluppatori Flask a introdurre Ajax nelle loro applicazioni. Usa jQuery.ajax per inviare richieste AJAX.
L'installazione di Flask-Sijax è molto semplice, utilizzare il seguente comando -
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Date: 2020-08-08 pip install flask-sijax
Configurazione
SIJAX_STATIC_PATH - Percorso statico del file javascript Sijax. La posizione predefinita è static/js/sijax. In questa cartella sono conservati i file sijax.js e json2.js. SIJAX_JSON_URI - URI per caricare il file statico json2.js
Sijax trasmette dati tra il browser e il server utilizzando JSON. Pertanto, il browser deve avere un supporto locale per JSON o ottenere il supporto JSON dal file json2.js.
Le funzioni registrate in questo modo non possono fornire funzionalità Sijax, perché di default non possono accedere tramite il metodo POST (e Sijax utilizza richieste POST).
Per consentire alla funzione View di gestire le richieste Sijax, è possibile utilizzare @app.route('/url', methods = ['GET', 'POST']) può essere acceduta tramite POST, o utilizzare qualcosa del genere @flask_sijaxDecoratore ausiliario .route -
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Date: 2020-08-08 @flask_sijax.route(app, '/hello')
Ogni funzione di gestione Sijax (come questa) riceve automaticamente almeno un parametro, proprio come Python passa 'self' ai metodi degli oggetti. Il parametro 'obj_response' è l'oggetto restituito alla funzione dal browser.
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Date: 2020-08-08 def say_hi(obj_response): obj_response.alert('Hi sijax!')
Quando viene rilevata una richiesta Sijax, Sijax la gestisce così -
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Date: 2020-08-08 g.sijax.register_callback('say_hi', say_hi) return g.sijax.process_request()
Il codice sorgente dell'applicazione Sijax più piccola è il seguente -
# Filename: example.py # Copyright: 2020 By w3codebox # Author by: it.oldtoolbag.com # Date: 2020-08-08 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: # Rilevato richiesta Sijax - lascia che Sijax la elabori 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 una Sijax richiede al server (una richiesta speciale di jQuery.ajax()), questa richiesta viene rilevata da g.sijax.is_sijax_request() sul server, in questo caso, Sijax elaborerà automaticamente la richiesta.
Tutte le funzioni registrate con g.sijax.register_callback() sono rese pubbliche per essere chiamate dal browser.
Chiamare g.sijax.process_request() per informare Sijax di eseguire la funzione appropriata (precedentemente registrata) e restituire la risposta al browser.