簡體   English   中英

從 Flask-SQLAlchemy 將數據導出到 CSV 文件

[英]Exporting data into CSV file from Flask-SQLAlchemy

我正在尋找從我正在開發的 flask-sqlalchemy 應用程序中生成(導出)一個 csv。 But i'm getting some unexpected outcomes in my csv i.e. instead of the actual data from the MySQL DB table populated in the csv file, i get the declarative class model entries (placeholders??) . 問題可能是我構建查詢的方式,甚至是整個 function。

奇怪的是 - 從 csv output (圖片)來看 - 似乎我在正確的軌道上,因為行/列數與數據庫表相同,但實際數據並未填充。 我對 SQLAlchemy ORM 和 Flask 很陌生,所以在這里尋找一些指導來完成。 建設性的反饋表示贊賞。

#class declaration with  DB object (divo)
class pearl(divo.Model):
    __tablename__ = 'users'                 
    work_id = divo.Column(divo.Integer, primary_key=True)
    user_fname = divo.Column(divo.String(length=255))
    user_lname = divo.Column(divo.String(length=255))
    user_category = divo.Column(divo.String(length=255))
    user_status = divo.Column(divo.String(length=1))
    login_id = divo.Column(divo.String(length=255))
    login_passwd = divo.Column(divo.String(length=255))

#user report function
@app.route("/reports/users")
def users_report():
    with open(r'C:\Users\Xxxxxxx\Projects\_repository\zzz.csv', 'w') as s_key:
        x15 = pearl.query.all()
        for i in x15:
#        x16 = tuple(x15)
            csv_out = csv.writer(s_key)
            csv_out.writerow(x15)
    flash("Report generated. Please check designated repository.", "green")
    return redirect(url_for('reports_landing'))  # return redirect(url_for('other_tasks'))

#csv 結果(見附圖) csv 截圖

而不是來自 csv 文件中填充的 MySQL DB 表中的實際數據,我得到聲明性 class Z20F35E630DAF49DF884C 條目(?

列表中的每個 object

x15 = pearl.query.all()

代表users表中的一行。

您在電子表格中看到的不是占位符,而是每行 object 的字符串表示形式(參見object.repr )。

您可以通過列名屬性獲取特定行 object 的列值,例如:

x15[0].work_id # Assumes there is at least one row object in x15

你可以做的是這樣的:

with open(r'C:\Users\Xxxxxxx\Projects\_repository\zzz.csv', 'w') as s_key:
    x15 = divo.session.query(pearl.work_id, pearl.user_fname) # Add columns to query as needed
    for i in x15:
        csv_out = csv.writer(s_key)
        csv_out.writerow(i)

上面代碼中的i是以下形式的元組:

('work_id value', 'user_fname value')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM