用flask写一个图文直播网页(四)

前面已经实现了管理员的登录、登出和注销功能,下面来实现图片和文字的上传和图文管理。
实现之前,的先把前端页面主体部分的模型做出来

用flask写一个图文直播网页(四)_第1张图片
图文上传界面

前端的一些样式可以自己随便做这里不贴代码了

实现图文发布

首先的在static目录下建一个image文件夹把需要上传的图片存储在里面。然后获取图片的名字信息,和文字一起保存在数据库中。

sc.py

#判断文件后缀名是否是图片类型文件
UPLOAD_FOLDER = './static/image'
ALLOWED_EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif']
app = Flask(__name__)

#生成随机密钥
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config['SECRET_KEY'] = os.urandom(24)
app.config.from_object(config)
db.init_app(app)

def allowed_file(filename):
    return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS

# 发布图文
@app.route('/picture/', methods=['GET', 'POST'])
def upload_file():
admin_id = session.get('user_id')
if admin_id:
    if request.method == 'GET':
        return render_template('picture.html')
    else:
        file = request.files['file']
        content = request.form.get('content')
        if file:
            if allowed_file(file.filename):
                filename = secure_filename(file.filename)
                file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            else:
                return u'请按要求重新选择要上传的文件!'
        else:
            pass
        photo1 = Article(content = content, picture_path = file.filename)
        db.session.add(photo1)
        db.session.commit()
        return redirect(url_for('index'))
else:
    return redirect(url_for('login_a'))

这上面的代码很大一部分来自于flask官方网站的图片上传部分,这是我自己添加了图文一起上传,只上传图片和只上传文字三个部分。

你可能感兴趣的:(用flask写一个图文直播网页(四))