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

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

作者: reknow | 来源:发表于2018-05-03 19:03 被阅读0次

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

    图文上传界面

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

    实现图文发布

    首先的在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写一个图文直播网页(四)

          本文链接:https://www.haomeiwen.com/subject/utplrftx.html