python 实现图片上传接口开发 并生成可以访问的图片url
作者:大蛇王 发布时间:2021-03-19 01:02:02
标签:python,图片上传,url
版本:python3.7
功能,开发一个用户访问的页面,支持图片上传,并将其保存在服务器。
项目结构:
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、页面如下:
2、我们先上传一张 1001.jpg,提交后界面如下:
3、然后我们尝试通过图片url来访问这张图片:
搞定收工!
来源:https://blog.csdn.net/t8116189520/article/details/103530160


猜你喜欢
- 1,效果图 2,实现方法const columns = [ { title: '序号',  
- 在WEB2.0 网页充斥的年代,身边无时无刻都听到这样的声音:“拒绝海报式设计,要做有用的设计,要简洁,要清爽,要大气”产品经理
- Fuko Masked 是 Kaloyan Tsvetkov 的一个小型PHP库,用于通过用编辑后的元素替换列入黑名单的元素来屏蔽敏感数据。
- 使用原生SQL语句进行对数据库操作,可完成数据库表的建立和删除,及数据表内容的增删改查操作等。其可操作性很强,如可以直接使用“show da
- 本文实例讲述了python使用BeautifulSoup分页网页中超链接的方法。分享给大家供大家参考。具体如下:python通过Beauti
- 小朋友你可能有很多问号~,上一小节不是已经一顿操作猛如虎搭建好 Python + PyCharm 可用开发环境了吗?为什么这节又来个项目运行
- 本文主要介绍Python3.6及TensorFlow的安装和配置流程。一、Python官网下载自己电脑和系统对应的Python安装包。&nb
- 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!!回归正题,我们所要的说的axios的封装和api接口的统一管理,其实主
- python函数的两种嵌套方法使用函数的嵌套有两种方式:交叉嵌套回环嵌套交叉嵌套交叉嵌套的方式是在本函数中调用同一级或上一级函数的嵌套方法:
- 一.什么是Vuex? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规
- 如果你完全不懂,那么期望1-2周看完一遍拉倒....不用看的太仔细,后面再看到不懂的时候回头去看这些东西好了1. 前言和准备工作 这里不会介
- 这篇文章主要介绍了django有外键关系的两张表如何相互查找,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 看代码吧~name = r"\u6697\u88d4\u5251\u9b54"print(name.encode(
- 在日常生活中我们经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图。那么我们如何自己动手实现呢?说到
- 虽然我们一直使用书籍搜索的示例表单,并将起改进的很完美,但是这还是相当的简陋: 只包含一个字段,q。这简单的例子,我们不需要使用Django
- 前言我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数。在写一些系统脚本或者自动化
- 在oracle中创建一个函数,本来是想返回一个index table的,没有成功。想到文本也可以传输信息,就突然来了灵感,把返回值设置文本格
- 一、 yaml1、 准备支持的数据类型:字典、列表、字符串、布尔值、整数、浮点数、Null、时间等基本语法规则:大小写敏感使用缩进表示层级关
- 本文主要讨论如何计算 tensorflow 和 pytorch 模型的 FLOPs。如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务
- 图片太大了,上百张图用photoshop改太慢,就想到用python写个简单的批处理。功能简单就是把原图按比例缩小# -*- coding: