python项目开发案例集锦_Python + Flask 项目开发实践系列一

本文介绍了一个使用Python Flask实现的Web项目开发案例,重点讲解了首页内容列表的加载过程。内容涵盖HTML、JavaScript、Python和Flask以及数据库操作。通过四步详细阐述了如何将数据展示在首页,提供了清晰的代码示例和详细的注释,适合动手实践。
摘要由CSDN通过智能技术生成

今天开始我们讲讲Flask Web实践项目开发中的首页内容列表加载功能是如何实现的。

Step1: html 部分

<body><div class="container" style="width :90%">    <div class="row" align="center"><span><h3>消息管理h3>span>div>    <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>    <hr>    <div class="row" id="mainbody">        <div class="table-responsive">            <table>                <thead>                    <tr>                        <th style="width : 50px">编号th>                        <th style="width : 100px">PMS名称th>                        <th style="width : 400px">主要内容th>                        <th style="width : 30px">状态th>                        <th style="width : 60px">备注th>                        <th style="width : 120px">创建时间th>                        <th style="width : 80px" align="center">操作项th>                    tr>                thead>                <tbody id="alldatas">                tbody>            table>        div>    div>div><div class="page" id="pageid">div>body>

Step2:javascript部分

<script type="application/javascript">    //获取总记录数    $(function () {      var callback=function(p){//定义一个callback方法          $.ajax({          url: '/page/'+p,//规定发送请求的 URL          type: 'GET',//规定请求的类型(GET 或 POST)          dataType: 'json',//预期的服务器响应的数据类型          async:false, //表示请求是否异步处理          timeout: 1000,//设置本地的请求超时时间(以毫秒计)          cache: false, //表示浏览器是否缓存被请求页面          beforeSend: LoadFunction, //用于在向服务器发送请求前执行一些动作          error: ErrFunction,  //请求出错执行的函数          success: function (data) {//当请求成功时运行的函数              var jsons=data ? data : []; //定义一个变量当data有值时jsons=data,否则就为空              // 分页处理                $("#pageid").pager({ //分页功能               pagenumber: jsons.pageNum,//表示初始页数               pagecount: jsons.pages,//表示总页数               totalcount: jsons.amount,//表示总记录数               buttonClickCallback: callback//表示点击分页数按钮调用的方法            });               lists=""              $.each(jsons.content, function (index, item) {//循环获取数据                    lists +=""+ //拼凑一段html片段                        ""+item.id+""+                        ""+item.pms_name+""+                        ""+item.content+""+                        ""+item.status+""+                        ""+item.mark+""+                        ""+item.create_time+""+                        "" + "修改&nbsp&nbsp"+ "查看详情" + ""                    ""              });              $("#alldatas").html(lists);//设置或返回所选元素的内容(包括 HTML 标记)          }      })}      function LoadFunction() {//上面调用的实现函数          $("#alldatas").html('加载的数据未找到,请重新添加!...');//设置或返回所选元素的内容(包括 HTML 标记)      }      function ErrFunction() {//上面调用的实现函数          alert("数据加载失败!!!!");//设置或返回所选元素的内容(包括 HTML 标记)      }      callback(1) //页面加载完成后自执行  });script>

Step3:Python+Flask 部分

@app.route('/page/',methods=['GET'])def pageapi(page):    '''    All_page:总页数,创建页码的根据    All_Record:数据总条数,All_Record/PageCount=All_page 得到总页数    Current_page:当前请求的页码.传送给服务端    PageCount:每页显示的条数,传送给服务端    '''    sql = "select count(*) from flask_info"    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 "tiao:",tiao    sql1="select id,pms_name,content,status,mark,create_time from flask_info order by create_time desc limit %s,%s"%(tiao,PageCount)    content=get_data(sql1)    pagedict={}    pagedict['content']=content    pagedict['pageNum']=page    pagedict['pages']=All_page    pagedict['amount']=All_Record    return jsonify(pagedict)

Step4: db部分

#表结构如下:table1='''create TABLE IF NOT EXISTS flask_info(  id  INTEGER   PRIMARY KEY AUTOINCREMENT,    `pms_name` varchar(255) DEFAULT NULL,    `content` varchar(1000) DEFAULT NULL,    `status` varchar(255) DEFAULT NULL,    `mark` varchar(255) DEFAULT NULL,    `create_time` varchar(255) DEFAULT NULL );'''#数据库操作:def get_count(sql): #获取sql返回总条数    db = sqlite3.connect('test_flask.db')    cur = db.cursor()    result=cur.execute(sql).fetchall()    print(result[0][0])    cur.close()    db.close()    return result[0][0]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

最后页面首页数据展示如下图所示:

be92f5d44fa177ff1f9edea52e6bd8d0.png

总结:本文共分为四个部分,分别是由 html+js+python and flask+db组成,主要是说明了页面首页数据如何加载,内容清晰明了,每行代码需要仔细阅读,尤其javascript代码部分,注释写得尤其的详细,大家可以对照以上各部分代码多动手实践。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。更多原创文章请扫码关注查看,交流与合作请联系:loadkernel@126.com。

QQ技术交流群:41564936

7706ba0cd40614e57beab5c415cb669f.png

Shell 编程核心技术《一》

Shell 编程核心技术《二》

Pytest 可视化测试报告之 Allure

python+Appium之APP自动化测试

Python+appium框架原生代码实现App自动化测试

AirTest-selenium基于Web实现UI自动化测试

Python API自动化测试实操

Python 测试框架之 Unittest & Pytest

53d09bb9c1ff1aa2378ba23eeadf2a04.png

5d3ce5f68b504ef36a8e45d852768033.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值