Pandas df 使用flask-sqlalchemy 到数据库

war*_*nry 6 python sqlalchemy pandas 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))
Run Code Online (Sandbox Code Playgroud)

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

index   name     shack
0        jay       H9
1        ray       I8
2        t-bop     I6
3        jay-k     F89
4        phil      D89
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用:

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()
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点to_sql,也许使用?

Zax*_*axR 11

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

df.to_sql(name='client_history', con=db.engine, index=False)
Run Code Online (Sandbox Code Playgroud)

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

对于它的价值,您还可以使用 Flask-SQLAlchemy 作为 db.session 访问会话。