关于layui 表格搜索功能python实现

关于layui 表格搜索功能后台python实现的问题,想用layui的表格功能做一个搜索功能,现在可以将表格显示出来

img


想要做搜索功能,不知道后台咋写,再网上搜都是利用Java的
这是访问接口

@router.get("/item/") 

async def read_item_protect(page: int, limit: int):  # 使用的FastAPI查询参数的固定写法,因为前端layuimini传送page和limit参数过来,现在后端来处理
    sql = "select * from 1_a测试 limit %s,%s" % (
    (page - 1) * limit, limit)  # 第一页的0加到14条,%s是python字符串占位符的,请深刻理解这条语句
    print(sql)
    cursor = conn.cursor()
    try:
        cursor.execute(sql)
        print("所有数据查询语句已经执行了")
        print(sql)
        result = cursor.fetchall()
        # print(result)
        return {"code": 0, "msg": "信息有了", "count": count_db_medical(),
                "data": result}  # 这是layuimini返回json的要求格式,主要的要得到count和data,注意 count_db()调用了下面的函数主要统计条数
    except pymysql.Error as e:
        print(e)

def count_db_medical_protect():  # 统计数据的条目的函数,要用到
    sql = "select count(*) from 1_a测试"  # 统计条数
    print(sql)
    cursor = conn.cursor()
    try:
        cursor.execute(sql)
        d = cursor.fetchall()
        for x in d:
            a = x.get('count(*)')
            print(a)
            return (a)
    except pymysql.Error as e:
        print(e)
    finally:
        cursor.close()

这是前端的代码

layui.use('table', function(){
        var table = layui.table;

        //方法级渲染
        table.render({
            elem: '#LAY_table_user'
            ,url:'/item/'
            ,cols: [[
                {field:'username', width:200, title: '商品名'},
                {field:'id', width:200, title: '商品ID', sort: true}



            ]]
            ,id: 'testReload'
            ,page: true
            ,height: 310
        });

        var $ = layui.$, active = {
            reload: function(){
                debugger
                var demoReload = $('#demoReload');
                var val = demoReload.val();
                //执行重载
                table.reload('testReload', {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    ,where: {
                   
                        productName: demoReload.val().trim()
                    }
                }, 'data');
            }
        };

        $('.demoTable .layui-btn').on('click', function(){
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });
    });

img

table.render({
    elem: '#LAY_table_user'
    ,url:'/item/'
    /////
    , where: {
        page: 1,
        limit: 10        
    }
    /////
    ,cols: [[
        {field:'username', width:200, title: '商品名'},
        {field:'id', width:200, title: '商品ID', sort: true}
    ]]
    ,id: 'testReload'
    ,page: true
    ,height: 310
    ////////
    , done: function (res, curr, count) {
        //处理返回成功
    }
    , error: function (obj, msg) {
        //处理数据加载出错
    }
    //////////
});

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7729775
  • 这篇博客你也可以参考下:【微信读书每日一答辅助小程序】使用python对每日一答问题进行识别,并将结果保存到剪贴板以便搜索。
  • 除此之外, 这篇博客: 机器学习笔记——2 简单线性模型及局部加权线性模型的基本原理和python实现(参数估计的两个基本角度:几何直观和概率直观。函数最值问题的两大基本算法:梯度方法与迭代方法)中的 迭代方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 我们详细介绍迭代方法。首先我们知道最值点的必要条件是稳定点,即导数为0。因此我们实际上需要一个寻找函数零点的方法。一般来讲,迭代方法可以分为两类:

    • 直接法(连续函数的中值定理)
    • 间接法

    直接法有我们熟悉的二分法等,我们略去不谈。这里要重点介绍间接法。我们首先谈迭代法的一般理论,然后再谈广泛使用的牛顿迭代法及其多元形式。
    在一维情况下,由f(x)=0f(x)=0f(x)=0可以尝试得到:
    x=φ(x)x=\varphi(x)x=φ(x)∣φ′(x)∣&lt;1\mid \varphi^{&#x27;}(x)\mid &lt; 1φ(x)<1在区间[a,b][a,b][a,b]成立时,则可以证明在由迭代式xn=φ(xn−1)x_{n}=\varphi(x_{n-1})xn=φ(xn1)产生的迭代序列{xn}\{x_{n}\}{xn}收敛于x∗x^*x,其中x0∈[a,b]x_0\in[a,b]x0[a,b]。从而有
    lim⁡n→∞xn=lim⁡n→∞φ(xn−1)=x∗\lim_{n\to\infty}x_{n}=\lim_{n\to\infty}\varphi(x_{n-1})=x^*nlimxn=nlimφ(xn1)=x
    现在我们讨论牛顿迭代法。其基本思想在于做切线不断逼近零点。假设我们面对的函数为f(x)f(x)f(x),则在初始值x0x_0x0处的切线为y−y0=f′(x0)(x−x0)y-y_0 = f^{&#x27;}(x_0)(x-x_0)yy0=f(x0)(xx0)y=0y=0y=0得到x1x_1x1,从而不断迭代逼近真实值,其迭代式为
    xn=φ(xn−1)=xn−1−f(xn−1)f′(xn−1)x_n = \varphi(x_{n-1}) = x_{n-1}-\frac{f(x_{n-1})}{f^{&#x27;}(x_{n-1})}xn=φ(xn1)=xn1f(xn1)f(xn1)当求最值问题时,则迭代式为
    xn=xn−1−f′(xn−1)f′′(xn−1)x_n = x_{n-1}-\frac{f_{&#x27;}(x_{n-1})}{f^{&#x27;&#x27;}(x_{n-1})}xn=xn1f(xn1)f(xn1)牛顿迭代法在一定的条件下可以证明收敛 (参见《计算方法》,凹凸性),其收敛条件一般采用事后判断法,即
    ∣xn−xn−1∣&lt;ϵ\mid x_{n}-x_{n-1}\mid &lt; \epsilonxnxn1<ϵ当自变量为多元情况的时候,其迭代式的形式仍是一致的。根据多元微积分,此时的一阶偏导数为一个向量,即梯度,记为▽xf(x)\bigtriangledown_{x}f(x)xf(x),二阶偏导数为一个矩阵,即海森矩阵(Hessian)HHH,每一个元素为Hi,j=∂2f(x)∂xi∂xjH_{i,j} = \frac{\partial^2{f(x)}}{\partial{x_{i}}\partial{x_{j}}}Hi,j=xixj2f(x)因此多元情况下的牛顿迭代法的迭代式为
    xn=φ(xn−1)=xn−1−H−1▽xf(x)x_n = \varphi(x_{n-1}) = x_{n-1}-H^{-1}\bigtriangledown_{x}f(x)xn=φ(xn1)=xn1H1xf(x)注:一般情况下牛顿迭代法会比梯度下降迭代次数更少,收敛速度更快。然而每一次迭代牛顿迭代法需要需要计算的量更多,因为其中有一个海森矩阵。但只要维度n不是很大,总体上牛顿迭代的速度更快。

    Newton’s method typically enjoys faster convergence than (batch) gra-dient descent, and requires many fewer iterations to get very close to the minimum. One iteration of Newton’s can, however, be more expensive than one iteration of gradient descent, since it requires finding and inverting an n-by-n Hessian; but so long as n is not too large, it is usually much faster overall. When Newton’s method is applied to maximize the logistic regres-sion log likelihood function ℓ(θ), the resulting method is also called Fisher scoring.——Andrew Ng