flask读取数据库(mysql)并展示表格(讲解获取表头的方法)【附上flask好看点的helloworld】
2018-12-11 15:28
537 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a19990412/article/details/84955802
简述
为了网页的好看,最好还是用bootstrap
文章目录
好看点的helloworld
anyway,先看初始版本的 helloworld
- /template/index.html
- 来自于bootstrap官网
<!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <title>Hello, world!</title> </head> <body> <h1>Hello, world!</h1> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> </body> </html>
- ./app.py
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def hello_world(): return render_template('index.html') if __name__ == '__main__': app.run()
链接数据库
这里我推荐使用pymysql
因为这个在不同平台上都可以使用,而且安装也没什么坑。
pip install pymysql
- 链接的示范 conn是一个连接器
- host是url
- user是用户
- password是密码
- db是数据库(也就是show databases;可以看到的)
- charset主要是为了设置为可以看中文
import pymysql conn = pymysql.connect( host='127.0.0.1', user='root', password='1234', db='library_management_system', charset='utf8' )
结合在html上和flask上
html代码修改
- /templates/index.html
<!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <title>Hello, world!</title> </head> <body> <div class="row"> <div class="col-md-6 col-sm-12 col-xs-12"> <div class="panel panel-default"> <div class="panel-heading"> <h3>Students</h3> </div> <div class="panel-body"> <div class="table-responsive"> <table class="table table-striped table-bordered table-hover"> <thead> <tr> {% for i in labels %} <td>{{ i }}</td> {% endfor %} </tr> </thead> <tbody> {% for i in content %} <tr> {% for j in i %} <td>{{ j }}</td> {% endfor %} </tr> {% endfor %} </tbody> </table> </div> </div> </div> </div> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> </body> </html>
from flask import Flask, render_template import pymysql app = Flask(__name__) conn = pymysql.connect( host='127.0.0.1', user='root', password='1234', db='jxgl', charset='utf8' ) @app.route('/') def hello_world(): cur = conn.cursor() # get annual sales rank sql = "select * from student" cur.execute(sql) content = cur.fetchall() # 获取表头 sql = "SHOW FIELDS FROM student" cur.execute(sql) labels = cur.fetchall() labels = [l[0] for l in labels] return render_template('index.html', labels=labels, content=content) if __name__ == '__main__': app.run()
- 效果:
阅读更多
相关文章推荐
- mysql不用rand()函数实现随机读取数据库记录的方法
- 测试sq3数据库,读取数据库把内容输出到csv文件,附上输出到excel方法
- 从数据库表格中获取列最大的两种方法
- Spark读取数据库(Mysql)的四种方式讲解
- mysql、sqlserver、db2、oracle、hsql数据库获取数据库连接方法及分页函数
- 6、MySQL 8.0参考手册 获取有关数据库和表格的信息
- MySQL 获取 数据库 和 表信息 方法小结
- Spark读取数据库(Mysql)的四种方式讲解
- mysql不用rand()函数实现随机读取数据库记录的方法
- MySQL提供了以下三种方法用于获取数据库对象的元数据:
- php mysqli query 查询数据库后读取内容的方法
- java读取数据库指定表,生成bean,获取主键,自动生成get、set方法
- 用http 中doGet 方法获取mysql 数据库数据的错误总结
- 数据库_MYSQL获取自增主键【4种方法】 ,推荐方法3
- 简单讲解MySQL的数据库复制方法
- Spark读取数据库(Mysql)的四种方式讲解
- 关于.net程序中读取不规则的excle表格中的数据,并插入到数据库的方法
- 简单讲解MySQL的数据库复制方法
- MySQL 获取 数据库 和 表信息 方法小结
- java 读取数据库图片地址,将图片展示在jsp页面(图片必须在服务器硬盘上,此方法才可成功)