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 自动补全(vim)
Nov 30 Python
Python安装第三方库的3种方法
Jun 21 Python
python中PIL安装简单教程
Apr 21 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
python自动裁剪图像代码分享
Nov 25 Python
pandas去除重复列的实现方法
Jan 29 Python
详解Python3 基本数据类型
Apr 19 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 Python
详解Pymongo常用查询方法总结
Jan 29 Python
pytorch中的model=model.to(device)使用说明
May 24 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 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数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
教师研修随笔感言
2014/01/23 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
财产公证书
2014/04/10 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
小学运动会报道稿
2014/10/04 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
抖音动画片,皮皮虾,《治愈系》动画在用这首REMIX作为背景音乐,Anak ,The last world with you完整版
2022/03/16 杂记
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python