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中__init__和__new__的区别详解
Jul 09 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
解决python Markdown模块乱码的问题
Feb 14 Python
matlab中imadjust函数的作用及应用举例
Feb 27 Python
Pytorch十九种损失函数的使用详解
Apr 29 Python
Python如何实现定时器功能
May 28 Python
python3读取autocad图形文件.py实例
Jun 05 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
python解包概念及实例
Feb 17 Python
Python进行区间取值案例讲解
Aug 02 Python
Python 数据可视化之Matplotlib详解
Nov 02 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无限分类的类
2007/01/02 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
js常见表单应用技巧
2008/01/09 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
python dumps和loads区别详解
2020/02/04 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
HTTP状态码详解
2021/03/18 杂记
机电一体化专业推荐信
2013/12/03 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
国税会议欢迎词
2014/01/16 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
文明寝室申报材料
2014/05/12 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js