-
[置顶]软件接口设计怎么做?前后端分离软件接口设计思路
本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...
-
[置顶]接口管理如何做?接口实现版本管理的意义和最佳方法
本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...
-
[置顶]实现API管理系统的关键
下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...
-
.NET 合并程序集(将 dll 合并到 exe 中)(.net core和.net framework的区别)
背景:我们的应用程序通常都是由多个程序集组成,例如一个 exe 程序依赖于多个 dll 程序集。在某些情况下,我们希望程序的分发能够简单,单独一个 exe 就能正常运行。这种情况下,就需要将 dll ...
-
WinDbg排查CPU高的问题
一、概述在Window服务器部署程序后,可能因为代码的不合理或者其他各种各样的问题,会导致CPU暴增,甚至达到100%等情况,严重危及到服务器的稳定以及系统稳定,但是一般来说对于已发布的程序,没法即时...
-
Python单元测试框架——unittest(python测试模块)
一、Pyhon工作原理—— 核心概念:test case, testsuite, TestLoder,TextTestRunner,TextTestResult, test fixtureTestCa...
-
Python数据分析之双色球高频数据统计(python对双色球数据走势预测)
前言Step1:基础数据准备(通过爬虫获取到),以下是从第一期03年双色球开奖号到今天的所有数据整理,截止目前一共2549期,balls.txt 文件内容如下 :备注:想要现成数据的可以给我发邮件哟~...
-
C# 数据操作系列 - 12 NHibernate的增删改查(长沙天气)
0. 前言上一篇《C# 数据操作系列 - 11 NHibernate 配置和结构介绍》 介绍了Nhibernate里的配置内容。这一篇将带领大家了解一下如何使用NHIbernate。之前提到NHibe...
-
"""
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,...
-
2万8千张图片如何用python组成一张(简洁明了附源码)(Python 图片)
前言一张图片由无数的像素点组成,那么我们将用图片来填充这些像素点知识点:1. cv22. numpy3. tqdm4. argparse开发环境:Python 3.6Pycharm思路:1.输入2.计...
-
80%的人都不知道,全球Python库下载前10名(python 著名库)
题图:漫威宇宙英雄Python的简洁性,不仅仅在于其语法简单,还有各种python库函数的支持,为大家节省了大量的时间和精力,所以网上有人戏称python的编程者为调包侠。但是你知道全球最受欢迎的py...
-
Python爬虫高级之JS渗透登录新浪微博 | 知了独家研究(python 微博爬虫)
小伙伴们看到标题可能会想,我能直接自己登陆把登陆后的cookie复制下来加到自定义的请求头里面不香嘛,为什么非要用python模拟登录的过程?如果我们是长期爬取数据,比如每天早上中午和晚上定时爬取新浪...
-
python爬取糗百段子(爬取糗事百科)
(1)目标网站为:https://qiushibaike.com/text/(2)爬取目标网站10页内容(4)保存在字典中,格式如下:{'内容':'。。。。。。',}……}(5)将内容转换为JSON保...
