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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
获取Django项目的全部url方法详解
Oct 26 Python
Python语言描述最大连续子序列和
Dec 05 Python
Python中的取模运算方法
Nov 10 Python
python调用外部程序的实操步骤
Mar 04 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
Python 识别12306图片验证码物品的实现示例
Jan 20 Python
python实现logistic分类算法代码
Feb 28 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 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
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
PHP生成二维码的两个方法和实例
2014/07/01 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
javascript操作文本框readOnly
2007/05/15 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
python高阶爬虫实战分析
2018/07/29 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
简述安装Slackware Linux系统的过程
2012/05/08 面试题
外包公司软件测试工程师
2014/11/01 面试题
2015高中教师个人工作总结
2015/07/21 职场文书
创业计划书之面包店
2019/09/17 职场文书
mysql联合索引的使用规则
2021/06/23 MySQL
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python