python 如何发送短信?
发短信和发邮件一样简单,也是只要配置一些内容就行。
首先,我们需要一个短信平台,我这里选择的是百亿无线,还有阿里云等短信平台,大家随意选择,刚注册有10条短信免费使用,大家学习使用也是够的。这是注册之后的页面,右边有你的用户名和密码,代码需要写入这个。
点击右上的文档中心后,点击下载,里面已经有写好的代码
解压打开DEMO文件
选择python语言
把里面的内容拷贝到你的视图函数里,并修改成下图
import http.client #这里需要修改,因为它的是py2的写法 import urllib host = "106.ihuyi.com" sms_send_uri = "/webservice/sms.php?method=Submit" account = "C63562911" #用户名在短信平台可拷贝 password = "c26f1b234441c7aa72bde530c03fcdf6" #密码在短信平台可拷贝
def send_sms(text, mobile):
params = urllib.parse.urlencode( {'account': account, 'password': password, 'content': text, 'mobile': mobile, 'format': 'json'}) headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} conn = http.client.HTTPConnection(host, port=80, timeout=30) #注意http.client的修改 conn.request("POST", sms_send_uri, params, headers) response = conn.getresponse() response_str = response.read() conn.close() return response_str
#调用这个方法
def sendMsg(request):
mobile = "15521291548" text = "您的验证码是:520520。请不要把验证码泄露给其他人。" #注意:这个text只能修改验证码,别的不能动,不然会影响发送,想要别的模板估计得花钱 print(send_sms(text, mobile)) return HttpResponse("短信已发送")
用户名和密码的获取处,拷贝粘贴
最后在url.py文件配置路由地址即可
url(r'sendMsg/', views.sendMsg),
浏览器访问,返回短信发送成功,就OK了