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

Flask Sijax

Sijax steht für 'Simple Ajax', es ist ein Python/Die jQuery-Bibliothek zielt darauf ab, Flask-Entwicklern den einfacheren Einstieg in Ajax in ihre Anwendungen zu ermöglichen. Sie verwendet jQuery.ajax, um AJAX-Anfragen zu senden.

Installation

Flask-Die Installation von Sijax ist sehr einfach, verwenden Sie den folgenden Befehl -

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

Konfiguration

SIJAX_STATIC_PATH - Sijax JavaScript-Dateistatic-Pfad. Der Standardort ist static/js/sijax. In diesem Ordner werden sijax.js und json2.js-Datei. SIJAX_JSON_URI - json laden2.js-Staticdatei URI

Sijax verwendet JSON, um Daten zwischen Browser und Server zu übertragen. Daher muss der Browser lokal JSON unterstützen oder von json2.js-Datei JSON-Unterstützung erhält.

Durch这种方式 registrierte Funktionen können keine Sijax-Funktionen bereitstellen, da sie standardmäßig nicht auf den POST-Methoden zugreifen können (und Sijax verwendet POST-Anfragen).

Um zu ermöglichen, dass die View-Funktion Sijax-Anfragen verarbeiten kann, kann man @app.route('/url',methods = ['GET', 'POST']) kann durch POST darauf zugegriffen werden oder indem man ähnlich @flask_sijax.route-Hilfsdekorator -

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

Jeder Sijax-Verarbeitungsfunction (wie so) erhält automatisch mindestens einen Parameter, genau wie Python 'self' an Objektmethoden weitergibt. Der 'obj_response'-Parameter ist das Objekt, das die Funktion an den Browser zurückgibt.

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

Wenn ein Sijax-Anfrage erkannt wird, verarbeitet Sijax es so -

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

Sijax-Anwendung

Der kleinste Sijax-Anwendungscodes sieht folgendermaßen aus -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by: de.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 Anfrage erkannt - Lasst Sijax das erledigen
        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)

Wenn eine Sijax eine Anfrage an den Server sendet (eine spezielle jQuery.ajax() Anfrage), wird diese Anfrage durch g.sijax.is_sijax_request() auf dem Server erkannt und in diesem Fall wird Sijax automatisch die Anfrage verarbeiten.

Alle Funktionen, die mit g.sijax.register_callback() registriert wurden, sind dem Browser zur Verfügung gestellt, um aufgerufen zu werden.

Aufruf von g.sijax.process_request() um Sijax anzuweisen, die angemessene (früher registrierte) Funktion auszuführen und die Antwort dem Browser zurückzugeben.