Bình - Sijax

Sijax viết tắt của ‘Simple Ajax’ và nó là một Python/jQuery thư viện được thiết kế để giúp bạn dễ dàng mang theo Ajaxvào ứng dụng của bạn. Nó sử dụngjQuery.ajax để thực hiện các yêu cầu AJAX.

Cài đặt

Cài đặt Flask-Sijax rất dễ dàng.

pip install flask-sijax

Cấu hình

  • SIJAX_STATIC_PATH- đường dẫn tĩnh mà bạn muốn các tệp javascript Sijax được sao chép. Vị trí mặc định làstatic/js/sijax. Trong thư mục này,sijax.jsjson2.js các tệp được lưu giữ.

  • SIJAX_JSON_URI - URI để tải tệp tĩnh json2.js từ

Sijax sử dụng JSONđể chuyển dữ liệu giữa trình duyệt và máy chủ. Điều này có nghĩa là các trình duyệt cần hỗ trợJSON nguyên bản hoặc nhận được JSON hỗ trợ từ json2.js tập tin.

Các chức năng được đăng ký theo cách đó không thể cung cấp Sijax vì chúng không thể được truy cập bằng cách sử dụng POST theo mặc định (và Sijax sử dụng các yêu cầu POST).

Để làm một View chức năng có khả năng xử lý Sijax yêu cầu, làm cho nó có thể truy cập được qua POST bằng @app.route('/url', methods = ['GET', 'POST']) hoặc sử dụng @flask_sijax.route người trợ giúp trang trí như thế này -

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

Mọi hàm xử lý Sijax (như hàm này) tự động nhận ít nhất một tham số, giống như Python chuyển 'self' cho các phương thức đối tượng. Các‘obj_response’ tham số là cách chức năng nói chuyện trở lại trình duyệt.

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

Khi yêu cầu Sijax được phát hiện, Sijax xử lý nó như thế này -

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

Ứng dụng Sijax

Mã ứng dụng Sijax tối thiểu trông như sau:

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)

Khi Sijax yêu cầu (một jQuery.ajax() yêu cầu) đến máy chủ, yêu cầu này được phát hiện trên máy chủ bởi g.sijax.is_sijax_request(), trong trường hợp đó bạn để Sijax xử lý yêu cầu.

Tất cả các chức năng đã đăng ký sử dụng g.sijax.register_callback() được hiển thị để gọi từ trình duyệt.

Kêu gọi g.sijax.process_request() yêu cầu Sijax thực thi chức năng thích hợp (đã đăng ký trước đó) và trả lại phản hồi cho trình duyệt.