Loading

Python Web开发初试,基于Flask

关于web框架

仅仅对于应用层的coder而言,web框架的使用其实就是写路由,分发路由,写输出。当然如果要安全,要测试,要写优秀的接口,那需要继续积累经验和深入学习框架。

Python flask使用

写路由转发十分方便。

@app.route('/login', methods=['post'])
def login():
  xxx
  return xxx

python flask 提供蓝图机制实现路由分发,方便多文件模块化实现系统。

# navigate.py
from flask import Blueprint
navigate = Blueprint('navigate', __name__)

@navigate.route('/')
def welcome():
    return "wait"
# main.py
from nagivate import navigate
app.register_blueprint(navigate, url_prefix='/navigate')

前后端不分离可以直接用flask提供的render_template来渲染html后返回前端。

@app.route('/')
def welcome():
    return render_template('welcome.html')

前后端分离,后端就是返回某种规定格式的数据(轻量化常用json),其中url、请求方法、请求内容、json格式、返回内容都是需要提前写接口文档的。

# app.py
import json

from flask import Flask
from flask import render_template, request
app = Flask(__name__)


@app.route('/')
def hello_world1():  # put application's code here
    return render_template('index.html')


@app.route('/data/modifyCertification', methods=['post'])
def hello_world():  # put application's code here
    a = request.form.get('data1')
    b = json.loads(a)
    c = b['num1'] + b['num2']
    return {
        'success': '成功',
        'data':{
            'ret': c
        }
    }
if __name__ == '__main__':
    app.run()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
        //定义serializeObject方法,序列化表单

$.fn.serializeObject = function() {

    var o = {};

    var a = this.serializeArray();

    $.each(a, function() {

        if (o[this.name]) {

            if (!o[this.name].push) {

                o[this.name] = [ o[this.name] ];

            }

            o[this.name].push(this.value || '');

        } else {

            o[this.name] = this.value || '';

        }

    });

    return o;

};
    function f() {
        let data1 = $('form').serializeObject(); //序列化表单数据
                $.ajax({
                    type:'post',
                    dataType:'json',
                    url : '/data/modifyCertification',
                    data : {
                        "data1":JSON.stringify(data1)
                    },
                    success : function(res){
                        document.getElementById('out').innerHTML = res['success'] + '<br>' +  res['data']['ret'];
                    },
                    error : function(){
                        document.getElementById('out').innerHTML = "失败";
                    }
                });
    }
</script>
</head>
<body>
    <form>
        <input type="number" name="num1"> num1 <br>
        <input type="number" name="num2"> num2 <br>
        <input type="button" onclick="f()" value="计算结果">
    </form>
        <div id="out"></div>
</body>
</html>
posted @ 2022-03-21 10:35  kylenhu  阅读(187)  评论(0编辑  收藏  举报