Python 3 – Flask Sijax(例付き)-Pythonチュートリアル

Sijaxは「SimpleAjax」の略で、アプリケーションにAjaxを簡単に導入できるように設計されたPython / jQueryライブラリです。jQuery.ajaxを使用してAJAXリクエストを発行します。

つまり、SijaxはPython / jQueryライブラリです。 AJAXをWebアプリケーションで使いやすくします

関連コース: Python Flask:Flaskを使用してWebアプリを作成する

フラスコ-Sijax

インストール

Flask-Sijaxのインストールは簡単です。

構成、設定 SIJAX_STATIC_PATH:ミラーリングされるSijaxjavascriptファイルへの静的パス。デフォルトの場所はstatic / js / simaxです。

1
2
path = os.path.join('.', os.path.dirname(__file__), 'static/js/sijax/')
app.config['SIJAX_STATIC_PATH'] = path

このフォルダーには、sijax.jsファイルとjson2.jsファイルを保存します。

SIJAX_JSON_URI-URI json2.js静的ファイルのロード元

1
app.config['SIJAX_JSON_URI'] = '/static/js/sijax/json2.js'

SijaxはJSONを使用してブラウザーとサーバー間でデータを渡します。つまり、ブラウザーにはネイティブサポートが必要です。JSONまたはJSONサポートはjson2.jsファイルからサポートされています。

この方法で登録された関数は、デフォルトでPOSTメソッドを使用してアクセスできないため(およびSijaxはPOSTリクエストを使用するため)、Sijax機能を提供できません。

見る

ビュー機能がSijaxリクエストを処理できるようにするには、次を使用します。

1
@app.route('/url', methods = ['GET', 'POST'])

またはを使用します @flash_sijax.route auxiliary 次のようなデコレータ:

1
@flask_sijax.route(app, '/hello')

Pythonがオブジェクトメソッドに「self」を渡すのと同じように、各Sijax処理関数(このような)は自動的に少なくとも1つのパラメーターを受け取ります。「obj_response」パラメーターは、関数がブラウザーに応答する方法です。

1
2
def say_hi(obj_response):
obj_response.alert('Hi there!')

Ajaxリクエストが検出されると、Sijaxは次のように処理します。

1
2
g.sijax.register_callback('say_hi', say_hi)
return g.sijax.process_request()

SijaxアプリケーションのSijaxアプリケーションコードは次のとおりです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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("https://pythonbasics.org/")
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:

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)

関連コース: Python Flask:Flaskを使用してWebアプリを作成する

Hope this helps!

Source link