python 实现图片上传接口开发 并生成可以访问的图片url


Posted in Python onDecember 18, 2019

版本:python3.7

功能,开发一个用户访问的页面,支持图片上传,并将其保存在服务器。

项目结构:

python 实现图片上传接口开发 并生成可以访问的图片url

app.py文件内容如下:

from flask import Flask, Response, request, render_template
from werkzeug.utils import secure_filename
import os
 
app = Flask(__name__)
 
 
# 设置图片保存文件夹
UPLOAD_FOLDER = 'photo'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
 
# 设置允许上传的文件格式
ALLOW_EXTENSIONS = ['png', 'jpg', 'jpeg']
 
 
# 判断文件后缀是否在列表中
def allowed_file(filename):
  return '.' in filename and filename.rsplit('.', 1)[-1] in ALLOW_EXTENSIONS
 
 
# 上传图片
@app.route("/photo/upload", methods=['POST', "GET"])
def uploads():
  if request.method == 'POST':
    # 获取post过来的文件名称,从name=file参数中获取
    file = request.files['file']
    if file and allowed_file(file.filename):
      print(file.filename)
      # secure_filename方法会去掉文件名中的中文
      file_name = secure_filename(file.filename)
      # 保存图片
      file.save(os.path.join(app.config['UPLOAD_FOLDER'], file_name))
      return "success"
    else:
      return "格式错误,请上传jpg格式文件"
  return render_template('index.html')
 
 
# 查看图片
@app.route("/photo/<imageId>.jpg")
def get_frame(imageId):
  # 图片上传保存的路径
  with open(r'C:/Users/Administration/Desktop/photo_ceshi/photo/{}.jpg'.format(imageId), 'rb') as f:
    image = f.read()
    resp = Response(image, mimetype="image/jpg")
    return resp
 
 
if __name__ == "__main__":
  app.run(host='0.0.0.0', port=5000, debug=True)

index.html内容如下:

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
  <meta charset="UTF-8">
  <title>Upload</title>
</head>
<h1>请上传图片文件</h1>
<form action="" method=post enctype=multipart/form-data>
<p><input type=file name=file>
<input type=submit value=Upload>
</form>

启动app.py文件后,我们先访问 http://127.0.0.1:8002/photo/upload

1、页面如下:

python 实现图片上传接口开发 并生成可以访问的图片url

2、我们先上传一张 1001.jpg,提交后界面如下:

python 实现图片上传接口开发 并生成可以访问的图片url

3、然后我们尝试通过图片url来访问这张图片:

python 实现图片上传接口开发 并生成可以访问的图片url

搞定收工!

以上这篇python 实现图片上传接口开发 并生成可以访问的图片url就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python新手经常遇到的17个错误分析
Jul 30 Python
redis之django-redis的简单缓存使用
Jun 07 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
信号生成及DFT的python实现方式
Feb 25 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
基于python图像处理API的使用示例
Apr 03 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
python FTP编程基础入门
Feb 27 Python
Python谱减法语音降噪实例
Dec 18 #Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 #Python
使用python 对验证码图片进行降噪处理
Dec 18 #Python
如何使用Python多线程测试并发漏洞
Dec 18 #Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 #Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 #Python
Django中使用MySQL5.5的教程
Dec 18 #Python
You might like
资料注册后发信小技巧
2006/10/09 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
JavaScript多线程的实现方法
2007/05/08 Javascript
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
Vuex入门到上手教程
2018/06/20 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
js实现录音上传功能
2019/11/22 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
Python中下划线的使用方法
2015/03/27 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
工程催款通知书
2015/04/17 职场文书
铁人观后感
2015/06/16 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
Pandas 数据编码的十种方法
2022/04/20 Python
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL