flask+html+js做驾驶舱网站(一)

为了双十一,做了一个驾驶舱网站,发文章仅为了记录,如果牛人路过,欢迎指点

flask入门

flask入门,就比较简单,以以下代码为例:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

然后就可以正常得到一个只有hello,world的空白网页了(py文件名最好重命名成app.py)。


flask + for  循环+ajax 得到可以自动上下滚动的table

首先需要在flask新建一个templates的文件夹,里面新建一个html文件,这里以index.html为例,如图

index.html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>滚动table</title>
    <script src="../static/js/jquery.js"></script>
</head>
<body>
    <div id='fl-table2'>
			<p id="performance-title">当月事业部销售排行榜</p>
			<table class="fl-table">
			  <thead>
			    <tr>
			      <th>排名</th>
			      <th>事业部</th>
			      <th>当月销售</th>
			    </tr>
			  </thead>
			  <tbody id='mytable2'>
			  {% for info in infos[0] %}
			      <tr>
				  <td>{{info[0]}}</td>
			      <td>{{info[1]}}</td>
			      <td>{{info[2]}}</td>
				  </tr>
			  {% endfor %}
			  </tbody>
			</table>
		</div>
    <script>
        function addRow2() {//表格滚动
		    var table = document.getElementById('mytable2');
		    var row = table.insertRow(-1);
		    row.innerHTML = table.rows[0].innerHTML;

		    // 删除第一行
		    table.deleteRow(0);
		
		    table.scrollTop = table.scrollHeight;
		}
        setInterval(addRow2, 2000); 
    </script>
</body>
</html>

这里的id或者class是样式,只是为了做好看的,咱们可以先不管他,js文件可以到官网去下,jquery也是,这两个是通用样式,这里就不多详细赘述。

然后是py文件的内容:

from flask import Flask, render_template,request,jsonify
import simplejson
import util
import pandas as pd
import random

app = Flask(__name__)

@app.route('/',methods = ['post','get'])
def index():
    syb_data = pd.read_excel('D:\桌面\更新表.xlsx', sheet_name='事业部业绩排名')

    list_syb_data = []

    for num in range(len(syb_data)):
        list_syb_data.append(list(syb_data.iloc[num].values))
    return render_template('index.html',infos=[list_syb_data])


if __name__ == '__main__':
    # app.run(debug=True)

更新表如下:

代码解释:

1、首先在html中利用table组件创建了一个表的位置,表的字段名分别是排名,事业部,当月销售,也就是th的部分,那么需要填入的就是tbody部分。这里使用的是for循环一列一列填入

{% for info in infos[0] %}   //{% for i in item %}是html的for循环写法,infos[0]是因为我后面不止传一个,所以后端返回的info用了列表,而list_syb_data是info列表内的第一个元素。

<td>{{info[0]}}</td> //这里代表的是第一列,即排名列

{% endfor %} //这是html的for循环结尾写法

这个for循环就是为了把exel的数据传给前端。

2、接着是script部分:

首先效果是表格字段名不动,表格滚动,为了方便查找,在tbody标签位置加入一个class = 'mytable',这个css样式是不存在的,只是为了方便定位查找。

关于表格滚动,可以理解将第一行删除,并添加至最后一行,且每2秒执行一遍操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您可以按照以下步骤来实现: 1. 安装 Flask 库 使用以下命令安装 Flask 库: ``` pip install flask ``` 2. 创建 Flask 应用程序 在您的项目文件夹中创建一个名为 `app.py` 的文件,并添加以下代码: ```python from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True) ``` 这将创建一个基本的 Flask 应用程序,并在根目录下创建一个名为 `templates` 的文件夹来存储 HTML 模板。 3. 创建 HTML 模板 在 `templates` 文件夹中创建一个名为 `index.html` 的文件,并添加以下代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表格</title> <link rel="stylesheet" href="{{ url_for('static',filename='style.css') }}"> </head> <body> <h1>表格</h1> <table> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> <tr> <td>张三</td> <td>20</td> <td>男</td> </tr> <tr> <td>李四</td> <td>21</td> <td>女</td> </tr> <tr> <td>王五</td> <td>22</td> <td>男</td> </tr> </table> </body> </html> ``` 这将创建一个基本的 HTML 模板,并渲染一个表格。 4. 创建 CSS 文件 在您的项目文件夹中创建一个名为 `static` 的文件夹,并创建一个名为 `style.css` 的文件,并添加以下代码: ```css table, th, td { border: 1px solid black; border-collapse: collapse; } th, td { padding: 10px; text-align: center; } ``` 这将为表格添加样式。 5. 运行应用程序 在终端中运行以下命令: ``` python app.py ``` 然后在浏览器中访问 `http://localhost:5000/`,您将看到渲染的表格。 希望这可以帮助您实现您的需求,如果您有任何问题或疑问,请随时联系我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值