【发布时间】:2020-11-11 23:31:18
【问题描述】:
我正在创建一个简单的博客,我使用 flask-admin 来生成文章。每篇文章都基于下面给出的模型管理员。我不知道如何定义变量cover,以便在我的管理面板中找到上传图片的输入。
# importing some modules ...
from flask_admin import Admin
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy(app)
admin = Admin(app, template_mode='bootstrap3')
class Article(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(255), nullable=False)
description = db.Column(db.String(255), nullable=False)
slug = db.Column(db.String(255))
content = db.Column(db.Text, nullable=False)
cover = # which type here ?
author = db.Column(db.String(255), nullable=False)
created_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now())
edited_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now())
class AdminArticleView(ModelView):
# some specific code here
def on_model_change(self, form, model, is_created):
if isinstance(model, Article):
# some code ...
# may be work here to enable uploading an image in flask-admin ?
admin = Admin(app, template_mode='bootstrap3')
admin.add_view(AdminArticleView(Article, db.session))
我假设我将不得不更改视图 AdminArticleView,但我在烧瓶中真的很新……我的想法是在封面中注册图像的路径,所以我将使用 db.Column(db.Column) 来定义它。字符串,可为空=真)。然后,我会上传文件并将其路径存储在封面中(我也不知道该怎么做..)。但是,我发现这个想法有一个问题:将属性覆盖定义为 db.String 会导致在前端添加文本输入,因此无法在那里上传图像。我们需要在那里输入文件。我认为还有另一种更烧瓶pythonic的方法来解决这个问题。有人有想法可以帮助我吗?任何答案将不胜感激!
【问题讨论】:
标签: python flask file-upload