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 : 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 애플리케이션 코드는 다음과 같습니다 -
# 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가 적절한(이전에 등록된) 함수를 실행하고 응답을 브라우저로 반환하도록 합니다.