![](/img/trans.png)
[英]How do I prevent SQL injections in Flask-SQLAlchemy? Is there a better way to load data from 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 文件中填充的 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.