-
[置顶]软件接口设计怎么做?前后端分离软件接口设计思路
本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...
-
[置顶]接口管理如何做?接口实现版本管理的意义和最佳方法
本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...
-
[置顶]实现API管理系统的关键
下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...
-
"""
def create_image_eamil_contant(fp):
tpl = Template(EMAIL_IMAGE_TEMPLATE)
if not path.exists(fp):
sys.exit("要发送的本地图片不存在")
msg = MIMEMultipart("related")
image_name = "demo"
with open(fp, "rb") as rf:
mime_image = MIMEImage(rf.read())
# 注意: 一定需要<>括号
mime_image.add_header("Content-ID", "<%s>" % image_name)
msg.attach(mime_image)
# 渲染邮件文本内容
text = tpl.render(image_name=image_name)
msg_alternative = MIMEMultipart("alternative")
msg_alternative.attach(MIMEText(text, "html", "utf-8"))
msg.attach(msg_alternative)
return msg
如果你使用过python的web框架,你对文本的渲染一定不陌生,因为大多数web框架都支持文本渲染,这里使用的jinja2.
发送程序生成的照片
其实这里跟上面没什么区别的,唯一的区别就是是否保存在本地,既然能发送本地图片,我就先保存到本地然后再按照上面的方式不久可以了么? 首先这个方法是没有问题的,不过多了一次IO, 能在内存中解决的事为什么要放到本地呢?
这种情况主要是应对回去图片的方式是从其他接口获取到的,或者实时生成的时候。虽然很简单,但觉得说说也挺有意思的。
这里的模拟方式是假设在网上获取到了多张base64编码的图片,需要将其组合在一起,然后在不保存在本地情况下直接发送这张照片。
这个base64编码的图片已经保存在本地了,名字是demo_base64.txt
效果如下:
代码如下:
EMAIL_ONLINE_IMAGE_TEMPLATE = """
"""
def create_online_image_content():
from PIL import Image
tpl = Template(EMAIL_ONLINE_IMAGE_TEMPLATE)
fp = "demo_base64.txt"
if not path.exists(fp):
sys.exit("要发送的base64编码的图片不存在")
msg = MIMEMultipart("related")
image_name = "demo"
with open(fp, "rb") as rf:
base64_data = rf.read()
img_data = base64.b64decode(base64_data)
# 因为open方法需要一个file-like文件对象,而我们解码后的对象类型是bytes类型
# bytes类型没有文件对象的read, close方法,所以我们需要通过BytesIO对象包装一下,它会返回一个file-like文件对象
img = Image.open(BytesIO(img_data))
img_width, img_height = img.size
repeat_times = 5
# compose images
ret_img = Image.new(img.mode, (img_width, img_height * repeat_times))
for index in range(repeat_times):
ret_img.paste(img, box=(0, index * img_height))
# 因为MIMEImage需要一个bytes对象,所以们需要获取图片编码后的二进制数据而不是图片的array数据
img_bytes = BytesIO()
# 如果不指定图片格式,会因为没有文件名而报错
ret_img.save(img_bytes, "png" alt="用Python发一封图文并茂的邮件 荐(Python如何发邮件)" title="用Python发一封图文并茂的邮件 荐(Python如何发邮件)" width="200" height="150">
用Python发一封图文并茂的邮件 荐(Python如何发邮件)
环境虽说就发邮件这么个小事,很容易兼容Python2, Python3, 但是大家还是拥抱Python3吧, 我这里没有做python2的兼容写法,所以需要python3以上。很多人学习python,...
-
一道3行代码的Python面试题,我懵逼了...(python程序员面试题)
前言今天来说说交流群里一位群友问的Python题目。刚开始由于没有电脑,我也没有运行出来,之后查阅了一下资料才知道里面的知识还挺多的。废话不多说,我们直接开始。有意思的题目题目:写出下面程序运行结果d...
-
2万8千张图片如何用python组成一张(简洁明了附源码)(Python 图片)
前言一张图片由无数的像素点组成,那么我们将用图片来填充这些像素点知识点:1. cv22. numpy3. tqdm4. argparse开发环境:Python 3.6Pycharm思路:1.输入2.计...
-
Flask开发技巧之异常处理(flask报错)
本人平时开发中使用的,或者学习到的一些flask开发技巧整理,需要已有较为扎实的flask基础。1、Flask内置异常处理要想在Flask中处理好异常,有一套自己的异常处理机制,首先,我们必须先知道F...
-
80%的人都不知道,全球Python库下载前10名(python 著名库)
题图:漫威宇宙英雄Python的简洁性,不仅仅在于其语法简单,还有各种python库函数的支持,为大家节省了大量的时间和精力,所以网上有人戏称python的编程者为调包侠。但是你知道全球最受欢迎的py...
-
Python两招轻松爬取美团评论(python爬取美团数据)
结果很多读者对爬数据的过程比较感兴趣,那么今天就讲一下我是怎样获取美团数据,其实并不难,甚至还因为需要手动干预而显得有点不太聪明的样子。店铺评论数据在重庆火锅的文章中,我们一共爬取了每个店铺基本信息与...
-
如何爬取动态网页的数据?Python实战案例(动态网页爬虫 python)
前言一、什么是动态网页所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。而动态网页则不然,页面代...
-
Python爬虫高级之JS渗透登录新浪微博 | 知了独家研究(python 微博爬虫)
小伙伴们看到标题可能会想,我能直接自己登陆把登陆后的cookie复制下来加到自定义的请求头里面不香嘛,为什么非要用python模拟登录的过程?如果我们是长期爬取数据,比如每天早上中午和晚上定时爬取新浪...
-
python实现读取并显示图片方法(不需要图形界面)(python在窗口显示图片)
在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片。本人偏爱 matpoltlib,因为它的语法更像 matlab。一、matplotlib1. 显...
-
Python爬虫过程中验证码识别的三种解决方案(python爬虫验证码处理)
在Python爬虫过程中,有些网站需要验证码通过后方可进入网页,目的很简单,就是区分是人阅读访问还是机器爬虫。验证码问题看似简单,想做到准确率很高,也是一件不容易的事情。为了更好学习爬虫,后续推文中将...
