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错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
python实现kNN算法
Dec 20 Python
详解Python之unittest单元测试代码
Jan 24 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
Python自动抢红包教程详解
Jun 11 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 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&amp;java(一)
2006/10/09 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
字符串的replace方法应用浅析
2011/12/06 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
JavaScript错误处理
2015/02/03 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
python使用KNN算法手写体识别
2018/02/01 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Python如何生成xml文件
2020/06/04 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
python中time包实例详解
2021/02/02 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
口头翻译求职人自荐信
2013/12/07 职场文书
政法大学毕业生自荐信范文
2014/01/01 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
毕业生自荐信格式
2014/03/07 职场文书
企业消防安全责任书
2014/07/23 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书