- jsonify
Flask and AJAX with JQuery
examples/flask/22/app.py
from flask import Flask, jsonify, render_template, request import time app = Flask(__name__) @app.route("/") def main(): return render_template('main.html', reload = time.time()) @app.route("/api/info") def api_info(): info = { "ip" : "127.0.0.1", "hostname" : "everest", "description" : "Main server", "load" : [ 3.21, 7, 14 ] } return jsonify(info) @app.route("/api/calc") def add(): a = int(request.args.get('a', 0)) b = int(request.args.get('b', 0)) div = 'na' if b != 0: div = a/b return jsonify({ "a" : a, "b" : b, "add" : a+b, "multiply" : a*b, "subtract" : a-b, "divide" : div, })
examples/flask/22/static/math.js
$(function() { $.ajax({ url: '/api/info', success: function(data) { console.log('get info'); $('#info').html(JSON.stringify(data, null, ' ')); $('#description').html(data['description']); } }); $('#calc').click(function() { $('#info').css('display', "none"); $('#description').css('display', "none"); //console.log(url); $.ajax({ url : '/api/calc?a=' + document.getElementById('a').value + '&b=' + document.getElementById('b').value, success: function(data) { $('#add').html(data['a'] + ' + ' + data['b'] + ' = ' + data['add']); $('#subtract').html(data['a'] + ' - ' + data['b'] + ' = ' + data['subtract']); $('#multiply').html(data['a'] + ' * ' + data['b'] + ' = ' + data['multiply']); $('#divide').html(data['a'] + ' / ' + data['b'] + ' = ' + data['divide']); } }); }); })
examples/flask/22/templates/main.html
<html> <head> </head> <body> <input type="number" id="a"> <input type="number" id="b"> <button id="calc">Calc</button> <div id="results"> <div id="add"></div> <div id="subtract"></div> <div id="multiply"></div> <div id="divide"></div> </div> <pre id="info"></pre> <div id="description"></div> <script src="/static/jquery-3.1.1.min.js"></script> <script src="/static/math.js?r={{reload}}"></script> </body> </html>