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实现微信的自动回复功能吧,并且把 ...
随机推荐
- P3387 【模板】缩点 题解 (Tarjan)
题目链接 P3387 [模板]缩点 解题思路 这几天搞图论,好有趣hhh,多写几篇博客. 上次学\(Tarjan\)求割点,这次缩点. 思路大概是多一个栈和染色的步骤,每次\(Tarjan\)的时候把 ...
- HashMap源码阅读(小白的java进阶)
OverView 构造方法 //构造方法 public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < ...
- 解析Wide Residual Networks
Wide Residual Networks (WRNs)是2016年被提出的基于扩展通道数学习机制的卷积神经网络.对深度卷积神经网络有了解的应该知道随着网络越深性能越好,但是训练深度卷积神经网络存在 ...
- 11、pass,is,位运算的补充
pass的补充 一般Python的代码是基于:和缩进来实现,Python中规定代码块中必须要有代码才算完整,在没有代码的情况下为了保证语法的完整性可以用pass代替 if 条件: pass else: ...
- java实现简易的图书馆管理系统
比较适合新手练手的一个简易项目 直接上源码 Book package code; /** * @author ztr * @version 创建时间:2021年3月4日 下午8:21:40 * 类说明 ...
- PTA 带头结点的链式表操作集
6-2 带头结点的链式表操作集 (20 分) 本题要求实现带头结点的链式表操作集. 函数接口定义: List MakeEmpty(); Position Find( List L, Element ...
- 获取执行计划之Autotrace
Autotrace 简介 AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计. AUTOTRACE的好处是您不必设置跟踪文件的格式,并且 ...
- 极简实用的Asp.NetCore模块化框架新增CMS模块
简介 关于这个框架的背景,在前面我已经交代过了.不清楚的可以查看这个链接 极简实用的Asp.NetCore模块化框架决定免费开源了 在最近一段时间内,对这个框架新增了以下功能: 1.新增了CMS模块, ...
- Typora标题自动编号+设定快捷键技巧
Typora标题自动编号 提示:要了解将这些CSS片段放在哪里,请参阅添加自定义CSS. 打开Typora偏好设置,打开主题文件夹,在主题文件夹中创建base.user.css文件,放置以下内容,则T ...
- Redis主从&哨兵集群搭建
主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz -- #安装gcc [r ...