python bootstrap 文件上传_flask 项目中使用 bootstrapFileInput(基础篇)

本文详细介绍了在Python Flask项目中使用bootstrap-fileinput进行文件上传的多个基本示例,包括自动展示缩略图、隐藏缩略图、多文件上传、设置只读和不可用状态、单按钮上传、限制最大上传文件数、指定文件格式以及使用rtl样式等。每个示例都包含对应的HTML模板和视图函数代码,展示了如何处理上传的文件。
摘要由CSDN通过智能技术生成

bootstrap 为 flask 使用人员提供了一个非常优美且有效的前端页面组件,但是完美之处还存在些许缺陷,比如文件的上传功能.而 bootstrap-fileinput 是基于 bootstrap 的控件,非常完美的填补了这个空缺.

创建蓝图 basic

构建基础 html 模板

app/basic/templates/basic_common/base.html 内容如下:html>

{% block title %}{% endblock %}

{% block css %}            

{% endblock %}

{% block js %}            

{% endblock %}    

{% block content %}

{% endblock %}                    

base.html 模板引入 css 和 js 时的几个坑

注意 css 和 js 文件的导入顺序首先需要导入的 js 文件是 jquery.js.

第二需要导入 bootstrap 相关的 css 和 js.

第三需要导入 fileinput 相关的 css 和 js, 请注意项目中的注释, 相关的文件导入也需要有先后顺序的要求.

注意版本问题此项目所需的 jquery 是 jQuery v2.1.1.

此项目所需的 bootstrap 是 v3.3.7 版本

此项目所需的 fileinput 是 v4.4.2 的版本.

其它版本可能会有所不同.

注意 fileinput 使用模式

fileinput 有两种使用模式,一种是利用 form 提交,一种是 ajax 方式提交.其中 ajax 提交方式,需要从 js 中进行设置, 并将类样式 class 设置为 file-loading. 而非 ajax 提交方式需要引入 form 表单, 类样式 class 需设置为 file, 本基础示例都需要引入 form 表单.

基础示例 1

模板内容

app/basic/templates/example_1.html 内容如下:{% extends 'basic_common/base.html' %}

{% block content %}

基本示例1 -- 自动展示缩略图

Select File{% endblock %}

{% block title %}

基本示例1 -- 自动展示缩略图

{% endblock %}

知识点:需要引入 form 表单, 并支持文件上传, 需设置 enctype="multipart/form-data".

由于 flask 项目是以 html 标签的 name 属性进行选择元素, 该 input 标签中需要设置 name 属性.

class 需要设置为 'file'.

input 标签的 type 属性要设置为 file, 以便支持文件上传.

input 标签由于没有引入 multiple 属性, 故不能实现选择多文件功能.

视图函数

app/basic/views.py 内容如下:# -*- coding:utf-8 -*-__author__ = '东方鹗'from flask import render_template, request, current_app, redirect, url_forfrom . import basicfrom werkzeug.utils import secure_filenameimport osdef allowed_file(filename):

ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])    return '.' in filename and \

filename.rsplit('.',

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值