2

Flask-Admin を使用して、Web サイトへの管理インターフェイスを提供しています。次のようなsqlalchemyモデルへのファイルアップロードを処理するにはどうすればよいですか

class Product(db.Model):
    __tablename__ = 'products'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(5000))
    text_short = db.Column(db.String(3000))
    text = db.Column(db.String(50000))
    price = db.Column(db.Integer)
    image = db.Column(db.String(1000))

、ディレクトリimage内の画像へのパスを保存するフィールドはどこですか?/static

4

1 に答える 1

6

on_model_changeそこでアップロードロジックをオーバーライドして実行します: http://flask-admin.readthedocs.org/en/latest/api/mod_model/#flask.ext.admin.model.BaseModelView.on_model_change

大まかな手順は次のとおりです。

  1. フォームに FileField を提供するか、画像フィールドのタイプを FileField に変更します。
  2. on_model_changeアップロードされたファイルを静的フォルダーにコピーし、モデルフィールドを新しいファイルパスで更新しimageます

それが役に立てば幸い。

于 2013-05-04T21:17:00.173 に答える