Frasco - Sijax
Sijax apoia ‘Simple Ajax’ e é um Python/jQuery biblioteca projetada para ajudá-lo a trazer facilmente Ajaxao seu aplicativo. UsajQuery.ajax para fazer solicitações AJAX.
Instalação
A instalação do Flask-Sijax é fácil.
pip install flask-sijax
Configuração
SIJAX_STATIC_PATH- o caminho estático onde você deseja que os arquivos javascript do Sijax sejam espelhados. O local padrão éstatic/js/sijax. Nesta pasta,sijax.js e json2.js os arquivos são mantidos.
SIJAX_JSON_URI - o URI para carregar o arquivo estático json2.js de
Sijax usa JSONpara passar os dados entre o navegador e o servidor. Isso significa que os navegadores precisam oferecer suporteJSON nativamente ou obter JSON apoio do json2.js Arquivo.
As funções registradas dessa forma não podem fornecer Sijax funcionalidade, porque eles não podem ser acessados usando um POST método por padrão (e Sijax usa solicitações POST).
Fazer um View função capaz de lidar Sijax solicitações, torná-lo acessível via POST usando @app.route('/url', methods = ['GET', 'POST']) ou use o @flask_sijax.route decorador auxiliar como este -
@flask_sijax.route(app, '/hello')
Cada função manipuladora do Sijax (como esta) recebe pelo menos um parâmetro automaticamente, da mesma forma que o Python passa 'self' para os métodos do objeto. o‘obj_response’ parâmetro é a maneira da função responder ao navegador.
def say_hi(obj_response):
obj_response.alert('Hi there!')
Quando o pedido do Sijax é detectado, o Sijax o trata assim -
g.sijax.register_callback('say_hi', say_hi)
return g.sijax.process_request()
Aplicativo Sijax
Um código de aplicativo Sijax mínimo se parece com o seguinte -
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)
Quando um Sijax solicita (um especial jQuery.ajax() pedido) para o servidor, este pedido é detectado no servidor por g.sijax.is_sijax_request(), nesse caso você deixa Sijax lidar com o pedido.
Todas as funções registradas usando g.sijax.register_callback() são expostos para chamadas do navegador.
Chamando g.sijax.process_request() diz ao Sijax para executar a função apropriada (registrada anteriormente) e retornar a resposta ao navegador.