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 相关文章推荐
numpy数组拼接简单示例
Dec 15 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
简单了解python的一些位运算技巧
Jul 13 Python
Django CBV类的用法详解
Jul 26 Python
python字符串格式化方式解析
Oct 19 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
Python排序函数的使用方法详解
Dec 11 Python
python 破解加密zip文件的密码
Apr 22 Python
Python多个MP4合成视频的实现方法
Jul 16 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
Sep 23 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中使用Select 查询语句的实例
2014/02/19 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
JS &amp; JQuery 动态添加 select option
2016/06/08 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
python生成式的send()方法(详解)
2017/05/08 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
pandas中ix的使用详细讲解
2020/03/09 Python
python zip()函数的使用示例
2020/09/23 Python
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
音乐系毕业生自荐信
2013/10/27 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
生日宴会答谢词
2014/01/09 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
2014年维稳工作总结
2014/11/18 职场文书
《窃读记》教学反思
2016/02/18 职场文书
python元组打包和解包过程详解
2021/08/02 Python