【问题标题】:how to store binary file recieved by Flask into postgres如何将Flask接收到的二进制文件存储到postgres中
【发布时间】:2015-05-11 05:43:19
【问题描述】:

我目前有一个通过 POST 接收文件内容的 Flask 路由, 并将其存储在文件系统上,例如:

@app.route('/upload', methods=['POST'])
def upload_file():

    def allowed_file(f):
        return True


    file = request.files['file']
    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        file.save(os.path.join(upload_dir(), filename))
        return "", 200

我想将它存储在 postgres 的 BYTEA 列中,我不确定如何将“数据”参数绑定到插入语句

db.session.execute("""
     INSERT INTO uploaded_file(id, name, type, data) 
     VALUES (:id, :name, :type, %(:data)s)""",
     {"id": str(id),"name": file.filename,"type": "...","data": ???}

【问题讨论】:

    标签: python flask flask-sqlalchemy psycopg2 werkzeug


    【解决方案1】:

    request.files 中的对象是FileStorage 对象。它们的方法与normal file objects in python 相同。

    所以,要获取二进制文件的内容,只需这样做:

    data = request.files['file'].read()
    

    然后将该参数传递给INSERT

    【讨论】:

      猜你喜欢
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      • 2021-11-05
      相关资源
      最近更新 更多