Python/Flask 初学者:如何格式化 db 值?

Posted

技术标签:

【中文标题】Python/Flask 初学者:如何格式化 db 值?【英文标题】:Python/Flask beginner: how to format db values? 【发布时间】:2021-11-02 09:29:12 【问题描述】:

我正在构建一个带有排名的网络应用程序,用于网球俱乐部学习 python。确实从一个应该使用 python 和烧瓶制作博客的教程开始。如果需要,您可以在这里找到它:

https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3

到目前为止,我创建了一个名为 main.db 的 sqlite 数据库,使用单独的脚本和 pandas 作为名为 playerlist 的表导入了一个 Excel 表,其中包含 3 列:名称、点数、活动。

我有一个 app.py,它查询数据库中的所有条目并返回一个 index.html,其中包含列表中的所有条目。这些点显示为浮点值,最后是 xxx.0。我希望看到整数,但无法弄清楚在迭代行时如何“格式化”一列的每个条目。

from flask import Flask, render_template, request, url_for, flash, redirect
from werkzeug.exceptions import abort

app = Flask(__name__)
app.config['SECRET_KEY'] = '********************'

def get_db_connection():
    conn = sqlite3.connect('/path/to/main.db')
    conn.row_factory = sqlite3.Row
    return conn

...

@app.route('/')
def index():
    conn = get_db_connection()
    rows = conn.execute('SELECT * FROM playerslist').fetchall()
    conn.close()
    return render_template('index.html', rows=rows) 

index.html 看起来像这样:


% block content %
    <h1>% block title % Tennis Rankings % endblock %</h1>
    % for row in rows %
        <a href=" url_for('data', Name=row['Name']) ">
            <h2> row['Name'] </h2>
        </a>
        <span class="badge badge-primary"> row['Points'] </span>
        <a href=" url_for('edit', Name=row['Name']) ">
            <span class="badge badge-warning">Edit</span>
        </a>
        <hr>
    % endfor %
% endblock %

我想我要么必须在查询数据库时这样做,要么必须在查询之前转换数据库条目?!感谢您的帮助:)

【问题讨论】:

【参考方案1】:

好的,所以我发现使用 CAST 可以做到这一点。我变了

rows = conn.execute('SELECT * FROM playerslist').fetchall()

rows = conn.execute('SELECT Name, CAST (Points AS Int) as Points, Active FROM playerslist').fetchall()

我之前尝试过,但我没有在 CAST 之后定义“作为点”,并且在索引页面上得到空白输出,因为我在其中一种 SQL“尝试 - 你自己”形式中发现,如果你不重新定义缺少 Cast 的第一个(索引)行。

【讨论】:

【参考方案2】:

不能依赖 SQL 查询以我们首选的格式返回数字,更改数据库不会真正帮助您。

唯一的简单方法是明确地进行类型转换,

for row in rows:

 row = int(row)

【讨论】:

这是我的第一个想法,但一行中有多种类型的数据,因此将所有内容(甚至文本)都转换为整数不是办法

以上是关于Python/Flask 初学者:如何格式化 db 值?的主要内容,如果未能解决你的问题,请参考以下文章

将 Python Flask Web 服务器应用程序连接到 DB2

Python Flask - 使用外键插入表

Python Flask开发简单http api接口 示例

Flask 框架下web开发的初级完整体验

小知识点Python Flask 部署,生成环境的爬虫训练场项目

将.3gp文件写入.wav格式python Flask服务器