• 【flask】表单-上传文件


    依赖:

    flask-wtf

    upload_case.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form method="post" enctype="multipart/form-data">
        {{form.csrf_token}}
    
        {{form.case}}<br>
        {{form.submit}}<br>
    </form>
    </body>
    </html>

    froms.py

    from flask_wtf import FlaskForm
    from wtforms import  StringField,SubmitField
    from flask_wtf.file import FileField,FileRequired,FileAllowed
    from wtforms.validators import DataRequired,Length
    
    class UploadCaseForm(FlaskForm):
        case = FileField('Upload Case',validators=[FileRequired(),FileAllowed(['xlsx'])])
        submit = SubmitField('提交')

    upload_case.py

    from flask import  Flask,render_template,flash,session
    from demo.forms import UploadCaseForm
    import os,uuid
    
    app = Flask(__name__)
    app.secret_key='secret string'
    app.config['UPLOAD_PATH']=os.path.join(app.root_path,'uploads')
    
    
    @app.route('/basic',methods=['GET','POST'])
    def basic():
        form = UploadCaseForm()
        if form.validate_on_submit():
            f=form.case.data
            filename=random_filename(f.filename)
            f.save(os.path.join(app.config['UPLOAD_PATH'],filename))
            flash('Upload Success')
            session['filenames']=[filename]
            return "上传成功"
    
        return render_template('upload_case.html',form=form)
    
    def random_filename(filename):
        ext=os.path.split(filename)[1]
        new_filename=uuid.uuid4().hex+ext
        return new_filename
    
    if __name__=='__main__':
        app.run(debug=True)
  • 相关阅读:
    Qt技巧、常用第三方库包含(qmake的.pro文件、CMakeLists.txt文件)
    STL资源
    debian 9 安装node angular
    debian 9 安装jenkins
    Consul 入门操作
    Docker 部署 postgresql 与 pgadmin4
    Docker File 与 Docker Compose
    Centos jdk
    Angular7 路由
    Centos Supervisor
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11858570.html
Copyright © 2020-2023  润新知