from flask import Flask, render_template import pymysql app = Flask(__name__) @app.route("/") def my_echart(): conn = pymysql.connect(host='127.0.0.1', user='你的数据库用户名', password='你的数据库密码', db='你的数据库名,在这里为data')#建立数据库连接 cur = conn.cursor() sqlmale = ' SELECT count(sex) FROM people_flow where sex=1 ' sqlfemale = ' SELECT count(sex) FROM people_flow where sex=0' sqls = ' SELECT sex FROM people_flow ' cur.execute(sqlmale)#执行单条sql语句 maleresult = cur.fetchall()#接收全部的返回结果行 cur.execute(sqlfemale) femaleresult = cur.fetchall() cur.execute(sqls) results = cur.fetchall() male_num = maleresult[0][0] female_num = femaleresult[0][0] num1 = [] for result in results: num1.append(result[0]) cur.close()#关闭指针对象 conn.close()#关闭连接对象 # print(male_num)#测试 # print(female_num) # print(num1) return render_template('bar.html',male_num=male_num,female_num=female_num, num1=num1)#先引入bar.html,同时根据后面传入的参数,对html进行修改渲染 if __name__ == '__main__': app.run(debug=True)#启用调试模式
时间: 2023-05-18 17:07:20 浏览: 128
这段代码是使用Python中的Flask框架和pymysql库来连接数据库,并在网页上展示数据。其中,Flask是一个轻量级的Web应用框架,render_template用于渲染模板,pymysql是Python操作MySQL数据库的库。在这段代码中,定义了一个名为my_echart的函数,用于展示数据。连接数据库时需要填写数据库的用户名、密码和数据库名。
相关问题
from flask import Flask, render_template, request from flask_sqlalchemy import SQLAlchemy from pyecharts import options as opts from pyecharts.charts import Geo from pyecharts.globals import ChartType from dao.init import get_mysql_config from salary_pie import generate_salary_pie from word_cloud import generate_word_cloud from geo_chart import generate_geo_chart app = Flask(__name__) app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False config = get_mysql_config() app.config[ 'SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{config['user']}:{config['password']}@{config['host']}:{config['port']}/{config['database']}" db = SQLAlchemy(app)
这段代码是一个使用 Flask 和 SQLAlchemy 的 Web 应用程序。首先,我们导入 Flask、render_template、request 和 SQLAlchemy 模块,以及 pyecharts 库的一些组件。然后,我们从 dao.init 模块中调用 get_mysql_config 函数来获取 MySQL 数据库的配置信息,并将其保存到 app.config 中。接着,我们创建了一个 SQLAlchemy 对象 db,并将其与 app 对象进行关联。
我在python容器docker-centos_mysql-1内有如下程序用于查询mysql数据库import pymysql import importlib,sys importlib.reload(sys) from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/index.py') def index(): print("34m~]34m~U34m~^4m~N[12;9Hdb = pymysql.connect('docker-centos_mysql-1', 'sc', '123456', 'mydb') cur = db.cursor() cur.execute("SELECT * FROM MyTable") rows = cur.fetchall() db.close() print( render_template('ran.html',u=rows) ) return render_template('ran.html',u=rows) if __name__ == '__www__': app.run(host='docker-centos_python-1',port=8800,debug=True)它能同时监听这个容器的8800端口么
是的,这个程序可以同时监听docker-centos_mysql-1容器的8800端口。但是需要注意以下几点:
1. 首先需要确保docker-centos_mysql-1容器已经启动,并且MySQL服务已经启动并监听了默认的3306端口。
2. 在连接MySQL时,需要将连接地址设置为docker-centos_mysql-1容器的IP地址,而不是localhost或127.0.0.1。可以使用以下命令获取容器的IP地址:
```
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' docker-centos_mysql-1
```
然后在连接MySQL时将地址设置为该IP地址即可。
3. 在启动Python程序时,需要将host参数设置为docker-centos_python-1容器的IP地址,否则默认会监听127.0.0.1的8800端口,无法接受来自其他容器的连接请求。可以使用以下命令获取容器的IP地址:
```
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' docker-centos_python-1
```
然后在启动程序时将host参数设置为该IP地址即可。
综上所述,如果docker-centos_mysql-1容器的IP地址为172.17.0.2,docker-centos_python-1容器的IP地址为172.17.0.3,那么可以使用以下代码启动Python程序:
```
if __name__ == '__www__':
app.run(host='172.17.0.3', port=8800, debug=True)
```
然后可以使用浏览器访问“http://172.17.0.3:8800/index.py”,Python程序将查询MySQL数据库并返回结果。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)