在Flask中使用SQLAlchemy数据库返回文件的方法如下:
from flask import Flask, send_file
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'your_database_uri'
db = SQLAlchemy(app)
class File(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100))
path = db.Column(db.String(200))
@app.route('/download/<int:file_id>')
def download_file(file_id):
file = File.query.get(file_id)
if file:
return send_file(file.path, attachment_filename=file.name, as_attachment=True)
else:
return 'File not found'
file1 = File(name='example1.txt', path='/path/to/example1.txt')
file2 = File(name='example2.txt', path='/path/to/example2.txt')
db.session.add_all([file1, file2])
db.session.commit()
if __name__ == '__main__':
app.run()
现在,当访问/download/<file_id>
路由时,将会返回对应文件的下载。例如,访问/download/1
将会下载名为example1.txt
的文件。
请注意,上述代码仅提供了一个基本的示例,实际应用中可能需要进行错误处理、身份验证等其他操作。此外,具体的数据库连接配置和文件路径需要根据实际情况进行修改。
推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)和腾讯云数据库MySQL版(https://cloud.tencent.com/product/cdb_mysql)。
云+未来峰会
Techo Day
云+社区技术沙龙[第17期]
DBTalk技术分享会
云+社区技术沙龙[第20期]
Techo Day 第三期
云+社区沙龙online [国产数据库]
DB TALK 技术分享会
DBTalk
DBTalk技术分享会
领取专属 10元无门槛券
手把手带您无忧上云