第十四讲python学习总结

1、邮箱验证
邮箱验证:主要用在web领域,当用户注册的时候,当注册成功的时候,就给用户发送一个邮件,邮件内容一般都是激活连接
注册成功==》执行Python代码==》邮件发送成功
smtp: 邮件发送协议
pop3: 邮件接受协议
imap: 邮件接收协议
python发送邮件使用的库是smtplib

发送方(我的163邮箱)、接收方
1、首先进去163邮箱进行配置,就是打开权限
    打开pop3/smtp服务
    smtp.163.com
2、客户端授权码,配置一个密码
    记住这个密码,用来登录smtp.163.com
3、编写代码,发送邮件

import smtplib
from email.mime.text import MIMEText
mail_server = smtplib.SMTP(smtp_server, 25)
mail_server.login(sender, password)
mail_server.sendmail(sender, to, message.as_string())
mail_server.quit()
#邮件案例演示
import smtplib
# 将你要发送的内容,转化为邮件的文本格式
from email.mime.text import MIMEText

# 要登录的smtp服务器
smtp_server = 'smtp.163.com'
# 定义发送方
sender = '[email protected]'
# 客户端授权码,不是163邮箱的密码
password = '123456aa'
# 接收方是谁,可以是多个,中间以逗号隔开
to = '[email protected],[email protected],[email protected]'
# 要发送的内容是啥,
message = '今晚一块看电影'
# 通过MIMEText将内容转化为邮件文本格式
message = MIMEText(message)
# 定制邮件标题
message['Subject'] = '邀请函'
# 定制邮件来源
message['From'] = sender

# 通过stmp服务的地址和端口号创建一个对象
mail_server = smtplib.SMTP(smtp_server, 25)
# 登录这个服务器
mail_server.login(sender, password)
# 发送邮件
mail_server.sendmail(sender, to, message.as_string())
# 发送完毕之后,退出即可
mail_server.quit()

2、短信验证
点击发送验证码===》执行程序===》发送短信验证码
有专业的短信发送平台,我们的代码就操作短信平台的
其实并不是你操作短信平台,而是短信平台为了你留出来接口,供你使用
秒嘀、云之讯

指定模板单发地址:https://open.ucpaas.com/ol/sms/sendsms
常用的身份认证参数:
    appid:355a844814b74f96a2bea3bb6d6dc58c
    asid:8fcfcbc013d0462f2874354de4bc1164
    token:96c5de2765dffbef410c46ea3bbe023c
    模板id:282536
#短信案例演示
import random
# 通过这个库向接口发送post请求
import requests
# import urllib.parse
# 应用id
headers = {
    'Content-type': 'application/x-www-form-urlencoded'
}
appid = 'bc286b14263b4d79a5560500298f17cb'
# 账户id
accountsid = '8fcfcbc013d0462f2874354de4bc1164'
# token
token = '96c5de2765dffbef410c46ea3bbe023c'
# 模板id
tmpid = '101886'
# 接口地址
post_url = 'https://open.ucpaas.com/ol/sms/sendsms'

# 生成一个随机验证码
code = random.randint(1000, 9999)
print(code)
# string = 
# 定义请求时的参数
params = {
    "sid": accountsid,
    "token": token,
    "appid": appid,
    "templateid": tmpid,
    "param": "1234,5",
    "mobile": "17701256561"
}
# 将post参数进行编码,然后在发送
# params = urllib.parse.urlencode(params)

# 创建一个模拟浏览器对象  根据主机号生成一个对象
# conn = http.client.HTTPConnection('ucpaas.com', port=80)
r = requests.post(url=post_url, data=params, headers=headers)
# 发送请求
# conn.request(method='GET', url='https://www.baidu.com/')
# 得到相应
# response = conn.getresponse()
print(r.text)

# 关闭连接
# conn.close()
#miaodi短信案例演示
import time
import hashlib
import urllib.parse
import http.client
# 请求的url
url = 'https://api.miaodiyun.com/20150822/industrySMS/sendSMS'
# 请求的http包头
headers = {
    'Content-type': 'application/x-www-form-urlencoded'
}
# 注册时候给你的账户id和token玩意
accountSid = '5d256d3c0a96410fb486866f53df9c62'
token = '0c05daf9cccd441ba418b98d264ec681'

# 发送给谁
to = '17701256561'
# 获取指定个是的时间戳
timestamp = time.strftime('%Y%m%d%H%M%S')
# print(timestamp)

# 获取指定的md5码
sig = accountSid + token + timestamp
hash = hashlib.md5()
hash.update(sig.encode('utf-8'))
sig = hash.hexdigest()

# 指定发送短信模板
templateid = '96466943'
code = '987123'
fenzhong = 5
param = code + ',' + str(fenzhong)

# 处理post请求时发送的数据
formdata = {
    'accountSid': accountSid,
    'templateid': templateid,
    'param': param,
    'to': to,
    'timestamp': timestamp,
    'sig': sig
}

# 将formdata进行编码
formdata = urllib.parse.urlencode(formdata)

# 创建模拟浏览器对象
conn = http.client.HTTPConnection('api.miaodiyun.com', port=80)

# 通过模拟浏览器发送请求
conn.request(method='POST', url=url, headers=headers, body=formdata)
# 获取该请求响应
response = conn.getresponse()
print(response.read().decode('utf-8'))
# 将链接关闭
conn.close()

3、turtle(海龟制图)

import turtle
screensize() 
hideturtle()   隐藏画笔
showturtle()   显示画笔
done()       

pensize(width) 画笔的粗细
speed()        画笔速度
penup()        抬起画笔
pendwon()      放下画笔
color()        画笔的颜色 
fillcolor()    设置填充颜色
begin_fill()   开始填充
end_fill()     结束填充

forward()      往前走多少距离
backward()     往后走多少距离
right(angle)   向右打方向盘
left(angle)    向左打方向盘
goto(x, y)     走到指定的坐标点 
home()         回到原点
circle(step)   画一个圆,半径是step
dot(d, color)  画一个点,d是直径,color是颜色
undo()         撤销上一次操作

clear()        清屏  颜色不变,画笔位置不变
reset()        重置  初始化
#海龟制图演示
import turtle

turtle.screensize(1000, 1000)
# turtle.hideturtle()
turtle.showturtle()
turtle.pensize(1)
turtle.speed(1)
# 颜色是有红绿蓝三种颜色组成
# 范围是0-1   100表示红   010表示绿色  
# turtle.color((0.5, 0.1, 0.3))
turtle.color('blue')

turtle.penup()

turtle.forward(200)

turtle.fillcolor('pink')
turtle.begin_fill()

turtle.pendown()
turtle.backward(100)

turtle.right(90)
turtle.forward(100)

turtle.left(135)
turtle.forward(141)

turtle.end_fill()

turtle.done()
#海龟制图案例演示二
import turtle

turtle.screensize()
turtle.color('red')
turtle.pensize(5)
turtle.speed(1)

turtle.circle(100)
# turtle.dot(100, 'blue')

turtle.color('blue')
turtle.forward(100)
# turtle.undo()
turtle.reset()

# turtle.goto(200, 0)
# turtle.home()
# turtle.goto(200, 200)
# turtle.goto(0, 0)

turtle.done()
#海龟制图案例演示三 画树叶
from  numpy import *
from random import random
import turtle

turtle.reset()

# 画树叶
x = array([[.5],[.5]])

p = [0.85,0.92,0.99,1.00]
A1 = array([[.85,  0.04],
            [-0.04,.85]])
b1 = array([[0],[1.6]])
A2 = array([[0.20,-0.26],
            [0.23,0.22]])
b2 = array([[0],[1.6]])
A3 = array([[-0.15,0.28],
            [0.26,0.24]])
b3 = array([[0],[0.44]])

A4 = array([[0,0],
            [0,0.16]])

turtle.color("blue")

cnt = 1
while True:
    cnt += 1
    if cnt == 2000:
        break

    r = random()
    if r < p[0]:
        x = dot(A1 , x) + b1
    elif r < p[1]:
        x = dot(A2 , x) + b2
    elif r < p[2]:
        x = dot(A3 , x) + b3
    else:
        x = dot(A4 , x)
    #print x[1]
    turtle.up()
    turtle.goto(x[0][0] * 50,x[1][0] * 40 - 240)
    turtle.down()

    turtle.dot()
turtle.done()

猜你喜欢

转载自blog.csdn.net/weixin_41853490/article/details/81026285
今日推荐