我正在創建一個表單,允許您上傳 .csv 檔案,然后在提交時,將上傳的檔案添加到名為“檔案”的表中的資料庫中。
我想弄清楚的是如何在檔案上傳時插入時間戳,以便在 HTML 端顯示上傳的檔案,以及上傳/發布的日期和時間。
我之前嘗試的是給我當地時間,它會隨著重繪 而不斷變化,但我想要上傳檔案的確切日期和時間。本質上,類似于在檔案資源管理器中單擊檔案屬性時的“已創建”時間戳。
我意識到我可能需要在我的 Files 類/表中為 DateTime 添加另一個屬性,以便可以將其發布到資料庫,然后呈現到 HTML 上。
這是我的班級“檔案”:
class Files(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
data = db.Column(db.LargeBinary)
f_source_id = db.Column(db.Integer, db.ForeignKey('funding_source.id'), nullable=True)
這是我將上傳的檔案發布到資料庫的位置:
@main.route("/upload_file", methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST' and 'csvfile' in request.files:
f = request.files['csvfile']
# pressing submit without uploading a file
if f.filename == "":
flash("No selected file. Please attach CSV file", "danger")
return redirect(url_for('main.alloc_summ'))
# only allowing .csv extension files
if f.filename and not allowed_file(f.filename):
flash("Only CSV Files Allowed", "danger")
return redirect(url_for('main.alloc_summ'))
# opening file, reading it in, and inserting values to database
if f.filename != '' and allowed_file(f.filename):
with open('<hidden path url>', 'r') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
new_file = Files(name=f.filename, data=f.read())
db.session.add(new_file)
db.session.commit()
flash("File Uploaded", "success")
return redirect(url_for('main.alloc_summ'))
如果有人能指導我如何獲取檔案上傳/發布到資料庫的時間戳,我將不勝感激,以便我可以查詢 Files 表以在 HTML 端顯示檔案和時間戳。蒂亞!!
uj5u.com熱心網友回復:
我認為如果您將另一列添加到包含時間戳的資料庫模型中就足夠了。一旦創建資料庫條目,它就會自動填充一個值。所以應該滿足你的要求。
from datetime import datetime
class Files(db.Model):
id = db.Column(db.Integer, primary_key=True)
created_at = db.Column(db.DateTime,
nullable=False, unique=False, index=False,
default=datetime.utcnow)
# ...
您可以使用Flask-Moment來顯示時間戳。它使用Moment.js來顯示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/432454.html
上一篇:各種子檔案夾中的燒瓶影像
