• python Flask JQuery使用说明


    0.前言
        近期因为某种原因再次学习Flask框架。借助博客整理相关内容。Flask框架和Apache+PHP存在少许不同,Flask框架中JS和CSS文件存放于一个相对固定的位置。

    普通情况下,位于static文件夹下(见图1 文件夹结构)。

    本文结合一个很easy的加法样例试图说明Flask框架中JQuery和Ajax的使用方法。

        这个样例将执行在树莓派中,请注意windows平台和linux平台也能够执行该演示样例,python具有良好的跨平台性能。

        【代码仓库】
        代码仓库位于Bitbucket,可下载zip包或通过TortoiseHg克隆代码。

        【相关博文】

    1.引入JQuery
        jquery.js文件须要存放于static文件夹中,在前端的代码中还须要指定该js文件的路径,这些路径均为“相对路径”。

    强烈建议把全部的文件都保存为UTF8格式,以免产生中文乱码现象。

        【文件夹结构】
     
    图1 文件夹结构
        【static文件夹】——jqury.js
        【templates文件夹】——main.html
        【flask-jquery.py】

    2.简单演示样例
        【1】前端部分
        【templates文件夹】——main.html
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Flask JQuery</title>
    <!-- 插入jquery -->
    <script src="{{url_for('static', filename='jquery.js')}}"></script>
    <script type=text/javascript>
    var $SCRIPT_ROOT = {{request.script_root|tojson|safe}};
    </script>
    <script type=text/javascript>
    $(function() {
        function submit_form(e) {
            $.getJSON($SCRIPT_ROOT + '/add', {
                a: $('input[name="a"]').val(),
                b: $('input[name="b"]').val(),
                now: new Date().getTime()
            },
            function(data) {
                $('#result').text(data.result);
            });
        };
        // 绑定click事件
        $('#calculate').bind('click', submit_form);
    });
    </script>
    </head>
    <body>
    <p>
        <input type=text size=5 name=a> +
        <input type=text size=5 name=b> =
        <span id=result>?</span>
    </p>
    <p><input type="button" id="calculate" value="计算"></p>
    </body>
    </html> 
        【简要说明】
        【1】<meta charset="utf-8"> 网页编码为UTF8。请注意网页文件也要保存为UTF8格式
        【2】<script src="{{url_for('static', filename='jquery.js')}}"></script>
                加载位于static文件夹中的jquery.js文件
        【3】var $SCRIPT_ROOT = {{request.script_root|tojson|safe}};
                抱歉,暂未理解其含义
        【4】now: new Date().getTime() 防止浏览器缓存的一种小技巧。
        
        【2】后端部分
        【flask-jquery.py】
    # -*- coding: utf-8 -*-
    from flask import Flask, jsonify, render_template, request
    app = Flask(__name__)
    
    @app.route("/")
    def index():
    # 主页面
        return render_template("main.html")
       
    @app.route('/add')
    def add_numbers():
        a = request.args.get('a', 0, type=int)
        b = request.args.get('b', 0, type=int)
        return jsonify(result = a + b)
       
    if __name__=="__main__":
        app.run(host = "0.0.0.0",port = 8080, debug = True)
        【简要说明】
        【1】request.args.get('a', 0, type=int) 前端通过GET方法提交,在URI提取參数a和參数b。中间的一个0为a和b的默认值,当函数执行失败时,a或b就仅仅能等于0了。
        【2】app.run(host = "0.0.0.0",port = 8080, debug = True)。

    全部IP地址均能够訪问,端口号为8080。而不是默认的80端口。


        【3】执行于树莓派中
        把图1所看到的的文件夹FTP传输到树莓派中。执行flask-jquery.py就可以
        python flask-jquery.py

    图2 前端页面

    图3 后台调试输出


  • 相关阅读:
    集合类的相关之区别
    String,实例,变量
    Java集合类详解
    英语飙升的好方法[网上转来的]
    jstl标签常用标签(全)
    Android 菜单(OptionMenu)大全 建立你自己的菜单
    持久层封装 JDBC
    SQL Sever 常用语句总结
    异常:数据库没有有效所有者,因此无法安装数据库关系图支持对象
    Log4j配置详解
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6920103.html
Copyright © 2020-2023  润新知