English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Sijax de Flask

Sijax representa 'Simple Ajax', es un Python/La biblioteca jQuery, diseñada para ayudar a los desarrolladores de Flask a introducir Ajax de manera sencilla en sus aplicaciones. Utiliza jQuery.ajax para emitir solicitudes AJAX.

instalación

Flask-La instalación de Sijax es muy sencilla, usando el siguiente comando -

# Filename: example.py
# Copyright : 2020 By w3codebox
# Author by: es.oldtoolbag.com
# Date : 2020-08-08
pip install flask-sijax

configuración

SIJAX_STATIC_PATH - La ruta estática del archivo JavaScript Sijax. La ubicación predeterminada es static/js/sijax. En esta carpeta, se guardan sijax.js y json2.js archivos. SIJAX_JSON_URI - cargar json2.js archivos URI estáticos

Sijax usa JSON para pasar datos entre el navegador y el servidor. Por lo tanto, el navegador necesita soporte local para JSON o desde json2.js archivo para obtener soporte JSON.

Las funciones registradas de esta manera no pueden proporcionar funcionalidad Sijax, porque por defecto no pueden acceder mediante el método POST (y Sijax utiliza solicitudes POST).

Para que la función View pueda manejar solicitudes Sijax, se puede usar @app.route('/url',methods = ['GET', 'POST']) para acceder a ella mediante POST, o usar @flask_sijaxayudante de decoración .route -

# Filename: example.py
# Copyright : 2020 By w3codebox
# Author by: es.oldtoolbag.com
# Date : 2020-08-08
@flask_sijax.route(app, '')/hello')

Cada función de procesamiento Sijax (como esta) recibirá automáticamente al menos un parámetro, al igual que Python pasa 'self' a los métodos de objeto. El parámetro 'obj_response' es el objeto devuelto por la función al navegador.

# Filename: example.py
# Copyright : 2020 By w3codebox
# Author by: es.oldtoolbag.com
# Date : 2020-08-08
def say_hi(obj_response):
     obj_response.alert('Hi sijax!')

Cuando se detecta una solicitud Sijax, Sijax la maneja de esta manera -

# Filename: example.py
# Copyright : 2020 By w3codebox
# Author by: es.oldtoolbag.com
# Date : 2020-08-08
g.sijax.register_callback('say_hi', say_hi)
     return g.sijax.process_request()

Aplicación Sijax

El código más pequeño de la aplicación Sijax se muestra a continuación -

# Filename: example.py
# Copyright : 2020 By w3codebox
# Author by: es.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:
        # 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)

Cuando un Sijax solicita al servidor (una solicitud especial de jQuery.ajax()), esta solicitud se detecta en el servidor con g.sijax.is_sijax_request(), en este caso, Sijax manejará automáticamente la solicitud.

Todas las funciones registradas con g.sijax.register_callback() están disponibles para ser llamadas por el navegador.

Llamar a g.sijax.process_request() para informar a Sijax de que debe ejecutar la función adecuada (previamente registrada) y devolver la respuesta al navegador.