今天开始我们讲讲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>  "
"<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
页面查询效果如下图所示:
总结:本篇文章主要是通过一个文本框输入,然后点击查询按钮提交一个查询请求,请求中会带上被输入的内容进行查询匹配,等待查询出来的数据集进行页面数据的渲染即可。
友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。