前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python + Flask 项目开发实践系列《五》

Python + Flask 项目开发实践系列《五》

作者头像
Wu_Candy
发布2022-07-04 17:28:45
3540
发布2022-07-04 17:28:45
举报
文章被收录于专栏:无量测试之道

今天开始我们讲讲Flask Web实践项目开发中的查询功能是如何实现的。

Step1:html 部分

代码语言:javascript
复制
<div class="row" align="right">
    主要内容:<input type='text' id='contents' name='contents'>
    <button class="btn btn-warning" id="select">查询</button>
    <button class="btn btn-primary" id="adds">添加</button>
    <button class="btn btn-danger" id="delete">删除</button>
</div>

Step2:javascript部分

代码语言:javascript
复制
$(function () {
    $('#select').click(function(){
        callback1(1,"none")
    });
      var callback1= function (page,contents){
          var contents=$('#contents').val();
          if(contents.length==0){
              alert("输出内容不能为空!");
              return ;
          }
          $.ajax({
          url: '/select/'+page+"/"+contents,
          type: 'GET',
          dataType: 'json',
          async:false,
          timeout: 1000,
          cache: false,
          beforeSend: LoadFunction, //加载执行方法
          error: ErrFunction,  //错误执行方法
          success: function (data) { //成功执行的方法
              var jsons=data ? data : [];
              // 分页处理
                $("#pageid").pager({
               pagenumber: jsons.pageNum,
               pagecount: jsons.pages,
               totalcount: jsons.amount,
                    buttonClickCallback: callback1
            });
               lists=""
              $.each(jsons.content, function (index, item) {//循环获取数据
                    lists +="<tr>"+
                        "<td style='word-wrap:break-word;word-break:break-all; '><input type='checkbox' id='itemid' name='testid' value='"+item.id+"'>"+item.id+"</td>"+
                        "<td style='word-wrap:break-word;word-break:break-all; '>"+item.pms_name+"</td>"+
                        "<td style='word-wrap:break-word;word-break:break-all; '>"+item.content+"</td>"+
                        "<td style='word-wrap:break-word;word-break:break-all; '>"+item.status+"</td>"+
                        "<td style='word-wrap:break-word;word-break:break-all; '>"+item.mark+"</td>"+
                        "<td style='word-wrap:break-word;word-break:break-all; '>"+item.create_time+"</td>"+
                        "<td style='word-wrap:break-word;word-break:break-all; '>" +
                        "<button class='btn btn-info' id='update' align='center' onclick='update($(this))'>修改</button>&nbsp&nbsp"+
                        "<button class='btn btn-warning' id='updateother' align='center' onclick='detail($(this))'>查看详情</button>" +
                        "</td>"
                    "</tr>"
              });
              $("#alldatas").html(lists);
          }
      })
      };
      function LoadFunction() {
          $("#alldatas").html('加载的数据未找到,请重新添加!...');
      }
      function ErrFunction() {
          alert("数据加载失败!!!!");
      }
  });

Step3:Python+Flask 部分

代码语言:javascript
复制
@app.route('/select/<page>/<contents>',methods=['get'])
def select(page,contents):
    contents="'%"+str(contents)+"%'"
    sql = "select count(*) from flask_info where content like "+contents
    PageCount=10
    All_Record = get_count(sql)
    if (int(All_Record) % int(PageCount) == 0):
        All_page = All_Record / PageCount
    else:
        All_page = All_Record / PageCount + 1
    tiao=(int(page)-1)*int(PageCount)
    print(contents)
    sql1="select id,pms_name,content,status,mark,create_time from flask_info where content like "+contents+" order by create_time desc limit %s,%s"%(tiao,PageCount)
    print(sql)
    content=get_data(sql1)
    pagedict={}
    pagedict['content']=content
    pagedict['pageNum']=page
    pagedict['pages']=All_page
    pagedict['amount']=All_Record
    return jsonify(pagedict)

Step4: db部分

代码语言:javascript
复制
def get_data(sql1):#获取sql返回记录数
 db = sqlite3.connect('test_flask.db')
 cur = db.cursor()
 print(sql1)
 cur.execute(sql1)
 results=cur.fetchall()
 cloumn=get_table_colum()
 res = {}
 reslist = []
 print(results)
 for r in range(len(list(results))):
 for m in range(len(list(cloumn))):
 res[str(list(cloumn)[m])] = str(list(results)[r][m])
 reslist.append(res)
 res = {}
 print(reslist)
 cur.close()
 db.close()
 return reslist

页面查询效果如下图所示:

总结:本篇文章主要是通过一个文本框输入,然后点击查询按钮提交一个查询请求,请求中会带上被输入的内容进行查询匹配,等待查询出来的数据集进行页面数据的渲染即可。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档