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网页解析利器BeautifulSoup安装使用介绍
Mar 17 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
python web基础之加载静态文件实例
Mar 20 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
Python中的heapq模块源码详析
Jan 08 Python
django2.0扩展用户字段示例
Feb 13 Python
python tkinter图形界面代码统计工具
Sep 18 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
Python全局变量与global关键字常见错误解决方案
Oct 05 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 Python
Python中字符串对象语法分享
Feb 24 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 Socket 编程
2010/04/09 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
PHP获取文件行数的方法
2015/06/10 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
Python3实现连接SQLite数据库的方法
2014/08/23 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
python用match()函数爬数据方法详解
2019/07/23 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
某同学的自我鉴定范文
2013/12/26 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
Python中glob库实现文件名的匹配
2021/06/18 Python
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
Python闭包的定义和使用方法
2022/04/11 Python
python使用BeautifulSoup 解析HTML
2022/04/24 Python