前面已经实现了管理员的登录、登出和注销功能,下面来实现图片和文字的上传和图文管理。
实现之前,的先把前端页面主体部分的模型做出来
前端的一些样式可以自己随便做这里不贴代码了
实现图文发布
首先的在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官方网站的图片上传部分,这是我自己添加了图文一起上传,只上传图片和只上传文字三个部分。