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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
在Python中操作日期和时间之gmtime()方法的使用
May 22 Python
Python找出list中最常出现元素的方法
Jun 14 Python
python中字符串变二维数组的实例讲解
Apr 03 Python
Django项目中model的数据处理以及页面交互方法
May 30 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
详解python 爬取12306验证码
May 10 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
Python自动发邮件脚本
2017/03/31 Python
Python入门_条件控制(详解)
2017/05/16 Python
Python优先队列实现方法示例
2017/09/21 Python
python中类的属性和方法介绍
2018/11/27 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
护士求职自荐信范文
2015/03/04 职场文书
入党函调证明材料
2015/06/19 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang