Alice: 嘿,Bob,我最近在做一个校友信息管理系统,想加入一个相册功能,你觉得怎么样?
Bob: 太好了!校友们的照片肯定能增加系统的互动性和吸引力。你打算用什么技术栈?
Alice: 我计划使用Python和Flask,因为它们相对容易上手,而且社区支持也很好。
Bob: 那太棒了。首先我们需要设置Flask应用的基本结构。你可以创建一个名为app.py的文件,然后初始化Flask应用。
{|
import os
from flask import Flask, render_template, request, redirect, url_for, flash
from werkzeug.utils import secure_filename
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'uploads/'
app.config['ALLOWED_EXTENSIONS'] = {'png', 'jpg', 'jpeg', 'gif'}
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in app.config['ALLOWED_EXTENSIONS']
@app.route('/')
def index():
files = os.listdir(app.config['UPLOAD_FOLDER'])
return render_template('index.html', files=files)
@app.route('/upload', methods=['POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return redirect(url_for('index'))
else:
flash("只允许上传图片")
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
|}
Bob: 然后我们需要创建一个HTML模板来显示这些图片。你可以创建一个名为templates/index.html的文件。
{|
校友相册
{% for file in files %}
{% endfor %}
|}
Alice: 明白了!这样我们就能让用户上传图片,并且在首页展示出来。