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

Flask Sijax

Sijax는 'Simple Ajax'을 의미하며, Python/jQuery 라이브러리는 Flask 개발자가 Ajax를 쉽게 프로그램에 도입할 수 있도록 도와주는 목적을 가지고 있습니다. 그것은 jQuery.ajax를 사용하여 AJAX 요청을 보냅니다.

설치

Flask-Sijax 설치는 매우 간단합니다. 다음 명령어를 사용하여 설치하세요 -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.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 지원을 얻습니다

이렇게 등록된 함수는 Sijax 기능을 제공할 수 없습니다. 왜냐하면 기본적으로 POST 메서드를 사용하여 접근할 수 없기 때문입니다(그리고 Sijax는 POST 요청을 사용합니다).

View 함수가 Sijax 요청을 처리할 수 있도록 하려면 다음을 사용할 수 있습니다 @app.route('/url',methods = ['GET','POST'])를 POST로 접근하거나, 유사하게 @flask_sijax.route 보조 장식자 -

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

Sijax 처리 함수(예를 들어 이렇게)는 자동으로 최소한 하나의 매개변수를 받아들이며, Python이 객체 메서드에 'self'를 전달하는 것처럼. 'obj_response' 매개변수는 함수가 브라우저로 반환하는 객체입니다.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.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 : ko.oldtoolbag.com
# Date : 2020-08-08
g.sijax.register_callback('say_hi', say_hi)
     return g.sijax.process_request()

Sijax 애플리케이션

가장 작은 Sijax 애플리케이션 코드는 다음과 같습니다 -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.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가 적절한(이전에 등록된) 함수를 실행하고 응답을 브라우저로 반환하도록 합니다.