python - Pandas df 使用 flask-sqlalchemy 到数据库

标签 python pandas sqlalchemy flask-sqlalchemy

我正在尝试将 pandas 数据框插入到 mysql 数据库中。我正在使用 flask-sqlalchemy。

我创建了这个表:

class Client_Details(db.Model):
    __tablename__ = "client_history"

    client_id = db.Column(db.Integer, primary_key=True)
    client_name = db.Column(db.VARCHAR(50))
    shack= db.Column(db.VARCHAR(50))

我想将这个 df 中的数据插入其中:

index   name     shack
0        jay       H9
1        ray       I8
2        t-bop     I6
3        jay-k     F89
4        phil      D89

这似乎不起作用:

for index, row in df.iterrows():
    client_add = client_history(client_name = row[1], shack =row[2])
    db.session.add(client_add)
    db.session.commit()

是否有更好的方法来执行此操作,也许是使用 to_sql

最佳答案

Kyle 的回答很接近——flask-sqlalchemy 引擎是在幕后用一些魔法创建的,但访问它的正确方法是使用 db.engine。这就是您要查找的内容:

df.to_sql(name='client_history', con=db.engine, index=False)

我也同意 VinceP 的评估,即 to_sql 对于较大的表可能会很慢,所以请记住这一点。

值得一提的是,您还可以使用 Flask-SQLAlchemy 作为 db.session 访问 session 。

关于python - Pandas df 使用 flask-sqlalchemy 到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43571991/

相关文章:

python - 计算并了解 Pandas 中哪些列缺少值的替代方法

php - 在 Python 中,您可以将一个变量分配给一个函数,然后将参数传递给该变量,您如何称呼该功能?

python - 屏蔽 pandas DataFrame 的下三角部分

python - 重新排序并添加缺失的行

python - 将数据帧附加到 sqlite3 表,BLOB 而不是时间戳

python - 将 Celery 与 SQLAlchemy 和 Pyramid 结合使用

python - SQLAlchemy 与 Flask db.session.commit() 不起作用

python - count() 和 concordance() 给出不同的计数

python - 有没有办法将两列中的值相乘,同时使用 pandas 按第三列中的值进行分组?

python - 如何访问与异步 sqlalchemy 的关系?