使用flask实现简单的文件上传
2024-09-04 03:58:17
from flask import Flask, redirect, render_template, request, url_for
from werkzeug.utils import secure_filename
import os
app = Flask(__name__)
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'doc']) # 设置允许上传的文件的类型 def allowed_file(filename):
"""
上传的文件类型
:param filename: 传入的文件名
:return: 返回True 或者 False
"""
return "." in filename and filename.rsplit(".", 1)[1] in ALLOWED_EXTENSIONS @app.route("/", methods=["GET", "POST"])
def file_name():
"""
上传文件
:return: 返回上传文件的url地址
"""
if request.method == "POST":
f = request.files["file"]
if f and allowed_file(f.filename):
path = os.path.split(os.getcwd())[0]
print(path)
file = path+"/demo/templates/"+secure_filename(f.filename)
print(file)
f.save(file)
return redirect("/uploads")
else:
return redirect(url_for("fail"))
return render_template("file_name.html") @app.route("/uploads")
def successful():
"""
设置返回路径的视图函数
:return:
"""
url = url_for("file_name")
return '访问文件的路径:http://127.0.0.1:5000{}'.format(url) @app.route("/fail")
def fail():
"""
文件类型不符合的视图函数
:return:
"""
return "文件不符合规则" if __name__ == '__main__':
app.run(debug=True)
最新文章
- iOS - Push 通知推送
- Burp Suite 常用功能 0x01 扫描后台
- IntelliJ IDEA 13试用手记(附详细截图)
- C# 后台获取WebApi 方法
- IOS之资源收集--很好的github网址
- Delphi7 安装ICS,与简单使用
- Java访问USB设备
- ACM Fibonacci数 计算
- [leetcode-442-Find All Duplicates in an Array]
- Chrome浏览器扩展开发系列之十三:消息传递Message
- JavaScript学习日志:关于js分号
- Ecshop中transport和jquery不兼容的解决方案
- PGM:图模型学习概述
- spring boot 拦截异常 统一处理
- [转] Web MVC简介
- 【三分】light bulb(zoj3203)
- 一篇你看了就懂的DNS详解
- iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法
- [DBSDFZOJ 多校联训] 就
- js Date对象要注意的问题(时间转换)
热门文章
- 从零搭建Prometheus监控报警系统
- TensorFlow实现时间序列预测
- JavaScript 浅析数组对象与类数组对象
- 【FPGA技巧篇一】FPGA设计的四种常用思想与技巧之一 :乒乓操作
- search(11)- elastic4s-模糊查询
- Day_09【常用API】扩展案例8_计算字符'j'和字符串'java'在字符串中出现的次数
- 【Hadoop离线基础总结】MapReduce倒排索引建立
- linux centos7搭建redis-5.0.5
- Cassandra数据建模
- TreeSet的两种实现方法:Comparable和Comparator(Java比较器)