Python Flask-如何将多个图像上载到数据库并在网站上呈现

Python Flask-如何将多个图像上载到数据库并在网站上呈现,python,html,database,flask,sqlalchemy,Python,Html,Database,Flask,Sqlalchemy,我有一个带烧瓶的图像上传区。此区域还可以加载多个图像。最多有8个图像上传曲目。上传保存的图像后,我将它们放入文件中。我会把他们上传的图片再次发布到网站上。我想在数据库中注册,但我不知道如何注册。我想要带输入文件的图片。有多少图片被上传,我不知道如何画这些图片 简而言之,当用户保存保存的图像时,我会将其保存在文件中,并希望将上载的图像保存到数据库中,以便在我的网站上发布。我该怎么做?我在用炼金术 HTML 要渲染图像,请获取相册,然后将图像作为属性访问,即album.foto_one、album.

我有一个带烧瓶的图像上传区。此区域还可以加载多个图像。最多有8个图像上传曲目。上传保存的图像后,我将它们放入文件中。我会把他们上传的图片再次发布到网站上。我想在数据库中注册,但我不知道如何注册。我想要带输入文件的图片。有多少图片被上传,我不知道如何画这些图片

简而言之,当用户保存保存的图像时,我会将其保存在文件中,并希望将上载的图像保存到数据库中,以便在我的网站上发布。我该怎么做?我在用炼金术

HTML


要渲染图像,请获取相册,然后将图像作为属性访问,即
album.foto_one
album.foto_two
等:

@app.route('/show-album/<int:id>', methods=['GET', 'POST'])
def show_album(id=None):
try:
    album = Album.query.get(id)
    return render_template('album.html', album=album)
except:
    abort(404)
还可以将图像名称存储为数组,并按如下方式渲染它们:

class Album(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    photos = db.Column(ARRAY(String))
在模板中,迭代照片列表,而不是键入所有链接

{% for item in album.photos %}
<ul>
    <li>
        <img src="{{ url_for('static/uploads/item') }}"> # <img src="/static/uploads/image_name.jpeg">
    </li>
</ul>
{% endfor%}
{%用于相册中的项目。照片%}
  • #
{%endfor%}
在数据库中存储文件不是一个好主意。只存储所需的元数据。还可以查看sqlalchemy的工作原理。实际的图像文件通过
file.save(os.path.join(app.config['UPLOADED\u FILES',filename])行保存在静态文件夹中。
您只需将图像名称存储在数据库列照片上,然后通过
url\u访问它们即可。
@app.route('/show-album/<int:id>', methods=['GET', 'POST'])
def show_album(id=None):
try:
    album = Album.query.get(id)
    return render_template('album.html', album=album)
except:
    abort(404)
<img src="{{ url_for('/static/uploads/album.foto_one }}">
<img src="{{ url_for('/static/uploads/album.foto_two }}">
class Album(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    photos = db.Column(ARRAY(String))
{% for item in album.photos %}
<ul>
    <li>
        <img src="{{ url_for('static/uploads/item') }}"> # <img src="/static/uploads/image_name.jpeg">
    </li>
</ul>
{% endfor%}