5分钟,教你用Python每天跟女朋友说1000遍土味情话!
目录
一、serverless简介
serverless,顾名思义,即“无服务器”,提供一个微型的架构,用户不需要部署、配置或管理服务器服务,只需要专注于业务逻辑,代码运行所需要的服务器服务皆由云端平台来提供,因此运维成本很低。
serverless有一个非常出名的产品,就是亚马逊公司在2014年推出的AWS Lambda。
serverless架构
主要包含两部分:Baas和Faas,通常位于云端,使用时不需要关注最底层的服务器。
Baas(后端即服务:Backend as a Service)包括对象存储、云数据库、API网关、消息推送等。
Faas(函数即服务:Functions as a Service)对计算能力进行了抽象,可以在无需管理服务器的情况下响应事件。
serverless三大应用场景
场景一:事件触发场景,即有事件触发时才会执行。
场景二:流量突发场景,遇到突发大流量情况时,serverless架构下按需加载,弹性伸缩,节省资源,负载均衡。
场景三:大数据处理场景,用户只需要上传核心代码到函数计算,就可以快速完成整个工作。
serverless的优势
传统架构下,面对大流量场景,需要增加机器或者对机器升级,运维较为困难。面对高峰和低谷,无法做到按需使用,成本较高。
serverless架构下,开发者只需专注代码开发,无需在各个云资源控制台手动开通服务和配置管理,并能够根据业务请求自动进行弹性伸缩;支持用户按需付费,成本较低;开发周期快,很大程度上提升了开发、部署的效率。
具体可以查看这里的文档 https://www.serverless.com/cn/framework/docs/
二、python实现发送邮件
import io
import sys
import time
import datetime
import random
import requests from email.mime.text import MIMEText
from email.header import Header
import smtplib import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO) mail_host = "smtp.qq.com"
mail_user = "*********@qq.com" #此处填你的邮箱
mail_girl = "*********@qq.com" #女朋友的邮箱
mail_pass = "*************" #邮箱密码,默认POP3/SMTP服务是关闭的,需要在设置中开启查看
name_gf = "***" #女朋友的名字
mail_port = 465
#sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') def getWeather():
r = requests.get(
'http://wthrcdn.etouch.cn/weather_mini?city=%E5%8C%97%E4%BA%AC')
if 'OK' in r.text:
r = r.json()['data']
tip = r['ganmao']
temperature = r['wendu']
weather = r['forecast'][0]['type']
return f'天气:{weather} 当前温度:{temperature}\n{tip}'
return '获取天气失败:(' def getTime():
today = datetime.datetime.now()+datetime.timedelta(hours=+8)
t = today.timetuple()
return f'今天是{t.tm_year}年{t.tm_mon}月{t.tm_mday}日 星期{t.tm_wday+1}' def getSoup(): return{
0:'你知道你和星星有什么区别吗?星星在天上,你在我心里。',
1:'这是我的手背,这是我的脚背,你是我的宝贝。',
2:'莫文蔚的阴天,孙燕姿的雨天,周杰伦的晴天,都不如你和我聊天。',
3:'我觉得你好像一款游戏。什么游戏?我的世界。',
4:'你今天特别讨厌,讨人喜欢和百看不厌。',
5:'你上辈子一定是碳酸饮料吧,为什么我一看到你就能开心的冒泡。',
6:'我对你的爱,就像拖拉机上山,轰轰烈烈……',
}.get(random.randint(0,6),'false') def morning():
return '\n'.join([getTime(), getSoup(), getWeather()]) def night():
return '\n'.join([getSoup(), f'晚安,{name_gf},梦里见!']) def getTimeX():
t = int(time.strftime("%H", time.localtime()))+8
if t > 24:
t = t-24
return 'morning' if t < 11 else ('noon' if t < 17 else 'afterNoon') def main_handler(event, context):
smtpObj = smtplib.SMTP_SSL(mail_host, mail_port)
print('enter')
try:
smtpObj.login(mail_user, mail_pass) except smtplib.SMTPException as e:
logger.info(e)
return False
content = night() if getTimeX() == 'afterNoon' else morning()
message = MIMEText(content, 'plain', 'utf-8')
message['From'] = mail_user
message['To'] = mail_girl
message['Subject'] = f'早安,{name_gf}' if getTimeX() != 'afterNoon' else '晚安,{name_gf}'
try:
smtpObj.sendmail(mail_user, [mail_girl], message.as_string())
logger.info("发送成功")
except smtplib.SMTPException as e:
logger.info(e)
logger.info("发送失败")
logger.info(content)
return content
三、部署到腾讯云serverless,实现自动发送
1.注册腾讯云账号腾讯云 - 产业智变 云启未来 (tencent.com)
2.找到云函数的管理控制台->函数服务->新建->自定义创建



3.将函数代码粘贴到index.py中,单击完成。

4.点击部署,部署到腾讯云

5.找到触发管理,创建触发器,设置定时触发

四、效果展示

马上就要到520了,快用起来吧!
五、注意事项
同时发给多个人的时候,一定要注意创建一个新的函数。
为什么呢?

因为我在运行过程中出现了一个error,收到的邮件是这个样子

一堆“早安,小红”里面突然混进了一个“早安,小白”。
查看了一下日志,是一个超时错误。调用失败后自动运行了前一个调用成功的代码,而我发送的时候只改了女朋友的名字。。

(幸好是在测试的时候发现的,否则又将是一个翻车现场。
5分钟,教你用Python每天跟女朋友说1000遍土味情话!的更多相关文章
- 【python】10分钟教你用python打造贪吃蛇超详细教程
10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...
- 10分钟教你用Python打造天气机器人+关键字自动回复+定时发送
01 前言 Hello,各位小伙伴.自上次我们介绍了Python实现天气预报的功能以后,那个小程序还有诸多不完善的地方,今天,我们再次来完善一下我们的小程序.比如我们想给机器人发“天气”等关键字,它就 ...
- 10分钟教你用Python打造微信天气预报机器人
01 前言 最近武汉的天气越来越恶劣了.动不动就下雨,所以,拥有一款好的天气预报工具,对于我们大学生来说,还真是挺重要的了.好了,自己动手,丰衣足食,我们来用Python打造一个天气预报的微信机器人吧 ...
- 10分钟教你用Python玩转微信之好友性别比例统计分析
01 前言+效果展示 想必,微信对于大家来说,是再熟悉不过的了.那么,大家想不想探索一下微信上的各种奥秘呢?今天,我们一起来简单分析一下微信上的好友性别比例吧~废话不多说,开始干活. 结果如下: 02 ...
- 10分钟教你用Python玩转微信之抓取好友个性签名制作词云
01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...
- 【python】10分钟教你用python如何正确把妹
前言 今天没妹子约,刚好研究一下.如何用神奇的python打造一个把妹神器吧.看完这个,你们就能走向人生巅峰,迎娶白富美啦. 我知道你们想看看效果 image 当然啦,这只是测试版的效果,真正的版本可 ...
- 【python】10分钟教你用python下载和拼接微信好友头像图片
前言 相信微信大家是用得再多也不过了.那么,对于python+微信,又能玩出什么新的花样呢?下面小编就给大家带来一个好玩的东西.用python下载所有的微信好友的头像,然后拼接成一张大图.这样,大家就 ...
- 【python】10分钟教你用python一行代码搞点大新闻
准备 相信各位对python的语言简洁已经深有领会了.那么,今天就带大家一探究竟.看看一行python代码究竟能干些什么大新闻.赶紧抄起手中的家伙,跟我来试试吧. 首先你得先在命令行进入python. ...
- 10分钟教你用Python实现微信自动回复
01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息.但微信又不能像QQ一样设置自动回复.无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把 ...
随机推荐
- springcloud知识点总结
一.SpringCloud面试题口述1.SpringCloud和DubboSpringCloud和Dubbo都是现在主流的微服务架构SpringCloud是Apache旗下的Spring体系下的微服务 ...
- 在ASP.NET Core中用HttpClient(三)——发送HTTP PATCH请求
在前面的两篇文章中,我们讨论了很多关于使用HttpClient进行CRUD操作的基础知识.如果你已经读过它们,你就知道如何使用HttpClient从API中获取数据,并使用HttpClient发送PO ...
- Canal高可用架构部署
一.前言 canal 是阿里的一款开源项目,纯 Java 开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了 MySQL(也支持 mariaDB). canal 模拟 mys ...
- 汇编 JCC指令表
JCC指令 中文含义 英文原意 检查符号位 典型c应用 JZ/JE 若为0则跳转:若相等则跳转 jump if zero;jump if equal ZF=1 if (i == j);if (i == ...
- 错误提示:Access denied for user 'GC'@'localhost' (using password: YES)
错误描述:使用的是C3P0连接池 Spring整合Mybatis时出现错误 java.sql.SQLException: Access denied for user 'GC'@'localhost' ...
- 通过xshell实现内网linux上公网yum、apt-get安装软件
环境:在内网,我的机器可上网,内网服务器不可上网,本来在我机器上开个代理,服务器直接通过我机器上网就可以,奈何网络配置太复杂,目前只有ssh端口可通. 先安装ccproxy软件,配置http监听端口为 ...
- 阿里云 RTC QoS 弱网对抗之变分辨率编码
本文为 QoS 弱网优化系列的第二篇 作者|安基程.田伟峰 审校| 泰一 视频编码中的变分辨率问题及解决 变分辨率在弱网场景的实际应用中非常常见,网络状况不好的时候降低分辨率可以降低码率,减少块效应, ...
- TypeError: 'list' object cannot be interpreted as an integer Python常见错误
想要通过索引来迭代一个list或者string的元素, 这需要调用 range() 函数.要记得返回len 值而不是返回这个列表.
- java面试-JDK自带的JVM 监控和性能分析工具用过哪些?
一.JDK的命令行工具 1.jps(JVM Process Status Tools):虚拟机进程状况工具 jps -l 2.jinfo(Configuration Info for java):Ja ...
- 201871010129-郑文潇 实验二 个人项目—《D{0-1}背包问题 》项目报告
项目 内容 课程班级博客链接 课程链接 这个作业要求链接 [作业要求](https://www.cnblogs.com/nwnu-daizh/p/14552393.html) 我的课程学习目标 1.掌 ...