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编程中namedtuple类的用法
Jun 21 Python
利用python批量修改word文件名的方法示例
Oct 17 Python
python调用系统ffmpeg实现视频截图、http发送
Mar 06 Python
Python实现读写INI配置文件的方法示例
Jun 09 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
python实现年会抽奖程序
Jan 22 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
python中for循环把字符串或者字典添加到列表的方法
Jul 20 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 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
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
js实现楼层导航功能
2017/02/23 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
python开发环境PyScripter中文乱码问题解决方案
2016/09/11 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
python3爬虫怎样构建请求header
2018/12/23 Python
简单了解python单例模式的几种写法
2019/07/01 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
python 如何调用 dubbo 接口
2020/09/24 Python
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
国防教育标语
2014/10/08 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
德能勤绩工作总结
2015/08/11 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python