我将我的flask-app连接到MySQL-Database,如下所示:
from flask_mysql_connector import MySQL
from flask_mysqldb import MySQL
# MySQL Connection
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'Prices'
app.config['MYSQL_PORT'] = 3306
app.config['MYSQL_DATABASE_SOCKET'] = ''
app.config['MYSQL_UNIX_SOCKET'] = ''
app.config['MYSQL_CONNECT_TIMEOUT'] = ''
app.config['MYSQL_READ_DEFAULT_FILE'] = ''
app.config['MYSQL_USE_UNICODE'] = ''
app.config['MYSQL_CHARSET'] = ''
app.config['MYSQL_SQL_MODE'] = ''
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'
mysql = MySQL()
mysql.init_app(app)执行如下查询:
cursor.execute("SELECT SUM(total) AS sumy FROM tbl")
total = cursor.fetchone()
total = total["sumy"]返回以下内容:
({'sumy': Decimal('123.4')})我现在的问题是:
是否将每个连接器、
MySQL Connector/Python
PyMySQL
MySQLDB
mysqlclient
and the OurSQL是否从SUM(列)查询返回小数(‘123.4’)值?我怎样才能以简单的方式摆脱这个小数特征呢?我知道有一些CAST()和float()建议。我喜欢保持简单,所以是不是缺少了一个fetchone()参数?或者一个像'raw‘这样的连接参数,就像Python/ MySQL (如果我必须更改的话,我必须重写代码……)
谢谢。
发布于 2020-12-27 20:13:50
嗯,看起来很有趣,即使是浮点数的总和也被返回为Decimal(123.4)。所以我继续在MySQL中做所有的计算,并使用flask来显示内容。
发布于 2020-12-25 08:17:17
Decimal是表示固定十进制值的python方式。SQL返回小数可能是因为sumy是小数。它可能所有的实现都会以相同的方式处理这个问题。
让python应用程序将其作为Decimal处理可能是维护数据库的最佳方式,数据库负责检索,应用程序负责表示。
https://stackoverflow.com/questions/65443949
复制相似问题