English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Sijaxは「Simple Ajax」を意味し、Pythonの/jQueryライブラリは、Flask開発者にAjaxを簡単にアプリケーションに導入するために設計されています。それを使用してjQuery.ajaxを通じてAJAXリクエストを送信します。
Flask-Sijaxのインストールは非常に簡単で、以下のコマンドを使用します -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 pip install flask-sijax
設定
SIJAX_STATIC_PATH - Sijaxのjavascriptファイルの静的パス。デフォルト位置はstatic/js/sijax。このフォルダーにsijax.jsとjson2.jsファイル。 SIJAX_JSON_URI - JSONをロードします2.js静的ファイルのURI
SijaxはJSONを使用してブラウザとサーバー間でデータを伝搬します。したがって、ブラウザはローカルでJSONをサポートする必要がありますか、json2.jsファイルにJSONサポートを取得します
このように登録された関数は、デフォルトではPOSTメソッドを使用してアクセスできないため(SijaxはPOSTリクエストを使用します)、Sijax機能を提供できません
View関数がSijaxリクエストを処理できるようにするには、以下を使用します @app.route('/url',methods = ['GET','POST'])をPOSTでアクセスするか、以下のように使用します @flask_sijax.routeアシスタントデコレータ -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 @flask_sijax.route(app, '')/hello')
各Sijaxハンドラ関数(以下のように)は、Pythonがオブジェクトメソッドに'self'を渡すように、少なくとも1つの引数を受け取ります。 'obj_response'パラメータは、関数がブラウザに返すオブジェクトです。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 def say_hi(obj_response): obj_response.alert('Hi sijax!')
SijaxはSijaxリクエストを検出したときに以下のように処理します -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 g.sijax.register_callback('say_hi', say_hi) return g.sijax.process_request()
以下是最小的Sijaxアプリケーションコードの例です -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.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)
Sijaxがサーバーにリクエスト(特別なjQuery.ajax()リクエスト)を送信した場合、このリクエストはサーバー上でg.sijax.is_sijax_request()によって検出され、この場合、Sijaxが自動的にリクエストを処理します。
g.sijax.register_callback()で登録されたすべての関数は、ブラウザから呼び出されるように公開されます。
g.sijax.process_request()を呼び出して、Sijaxが適切な(以前に登録された)関数を実行し、レスポンスをブラウザに返すことを伝えます。