定义一个SQLALchemy Mixin,用于在Flask应用程序中创建引导下载按钮。

flask-download-btn的Python项目详细描述


Flask Download Btn定义了一个SQLALchemy Mixin,用于在Flask应用程序中创建Bootstrap下载按钮。在

其特点包括:

  1. 自动启用和禁用。单击下载按钮时自动禁用,下载完成后重新启用。在
  2. CSRF protection.下载按钮检查CSRF身份验证令牌,以确保客户端有权下载请求的文件。在
  3. Web表单处理。下载按钮响应Web表单。在
  4. Pre-download operations.下载按钮可以在下载文件之前轻松执行操作,从而可以轻松创建临时下载文件。在
  5. Progress bar.使用服务器发送的事件更新客户端的下载进度。在

安装

$ pip install flask-download-btn

快速启动

我们的文件夹结构如下:

^{pr2}$

templates/index.html中,粘贴以下Jinja模板:

<html><head><!-- include Bootstrap CSS and Javascript --><linkrel="stylesheet"href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"><scriptsrc="https://code.jquery.com/jquery-3.4.1.min.js"></script><scriptsrc="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script><scriptsrc="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script><!-- include download button script -->
        {{ download_btn.script() }}
    </head><body><!-- render the download button and progress bar -->
        {{ download_btn.btn.render() }}
        {{ download_btn.render_progress() }}
    </body></html>

app.py中:

fromflask_download_btnimportDownloadBtnManager,DownloadBtnMixinfromflaskimportFlask,render_template,sessionfromflask_sqlalchemyimportSQLAlchemyfromsqlalchemy.ext.orderinglistimportordering_listapp=Flask(__name__)app.config['SECRET_KEY']='secret'app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///:memory:'app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=Falsedb=SQLAlchemy(app)# initialize download button manager with application and databasedownload_btn_manager=DownloadBtnManager(app,db=db)# create download button model and register it with the manager@DownloadBtnManager.registerclassDownloadBtn(DownloadBtnMixin,db.Model):id=db.Column(db.Integer,primary_key=True)# create the database and clear the session when the app starts@app.before_first_requestdefbefore_first_request():db.create_all()session.clear()HELLO_WORLD_URL='https://test-bucket2357.s3.us-east-2.amazonaws.com/hello_world.txt'# basic use@app.route('/')defindex():btn=DownloadBtn()btn.downloads=[(HELLO_WORLD_URL,'hello_world.txt')]db.session.commit()returnrender_template('index.html',download_btn=btn)

运行应用程序时:

$ python app.py

然后导航到http://localhost:5000/。单击“下载”按钮下载带有'Hello, World!'的文本文件。在

引文

@software{bowen2020flask-download-btn,
  author = {Dillon Bowen},
  title = {Flask-Download-Btn},
  url = {https://dsbowen.github.io/flask-download-btn/},
  date = {2020-06-17},
}

许可证

用户必须在使用它的任何出版物中引用此软件包。在

它是由麻省理工学院License授权的。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无法在Netbeans 8.2 JDK8u231中创建java Maven项目(Web应用程序)   java如何以设定的时间间隔生成随机数?   java从socket和inputStream的慢速读取   spring SCORM:Java中基于Web的SCORM播放器   Java将函数传递给方法   java绑定通用服务及其实现和子类型   java如何在运行时从选择列表框中动态选择选项?爪哇硒   java Selenium WebDriver什么是“Selenium客户端和WebDriver语言绑定”   elasticsearch需要elasticsearch高级Java客户端更新ByQueryRequest API帮助   JAVA哈希表查找最大值   WSDL操作中的java soapAction属性为空   java访问封闭类或父类方法的一般方法   eclipse在java中运行带有SeleneTestCase的ANT。lang.NoClassDefFoundError   java Hazelcast不会在节点启动时填充ReplicatedMap   如何在Java中从excel中读取特定行?   html JAVA将本地时间(GMT+8)转换为UTC时间   java将自定义端点添加到Spring数据REST存储库中,并以大摇大摆的方式显示   java计算未来位置