没有合适的资源?快使用搜索试试~ 我知道了~
主要介绍了django项目中使用手机号登录的实例代码,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
资源推荐
资源详情
资源评论
django项目中使用手机号登录的实例代码项目中使用手机号登录的实例代码
主要介绍了django项目中使用手机号登录的实例代码,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
本文使用聚合数据的短信接口,需要先获取到申请接口的appkey和模板id
项目目录下创建ubtils文件夹,定义返回随机验证码和调取短信接口的函数
function.py文件
import random
import re
# 随机数
def range_num(num):
# 定义一个种子,从这里面随机拿出一个值,可以是字母
seeds = "1234567890"
# 定义一个空列表,每次循环,将拿到的值,加入列表
random_num = []
# choice函数:每次从seeds拿一个值,加入列表
for i in range(num):
random_num.append(random.choice(seeds))
# 将列表里的值,变成四位字符串
return "" . join(random_num)#5454
sendMsg.py文件
import json, urllib
from urllib.parse import urlencode
# 发送短信
def request2(mobile,num, m="GET"):
appkey = '6bba3e7dffa71b79483002e1d92f4d00'
url = "http://v.juhe.cn/sms/send"
params = {
"mobile": mobile, # 接收短信的手机号码
"tpl_id": "167106", # 短信模板ID,请参考个人中心短信模板设置
"tpl_value": "#code#=%s"%num,
# 变量名和变量值对。如果你的变量名或者变量值中带有#&=中的任意一个特殊符号,请先分别进行urlencode编码后再传递,<a href="http://www.juhe.cn/news/index/id/50" target="_blank">详细说明></a>
"key": appkey, # 应用APPKEY(应用详细页查询)
"dtype": "", # 返回数据的格式,xml或json,默认json
}
params = urlencode(params)#mobile=15038062130&tpl_id=166467&tpl_value=%23code%23%3d431515&key=dabf6ecaebfa9554395dad7dcc6be7c8
if m == "GET":
f = urllib.request.urlopen("%s?%s" % (url, params))
else:
f = urllib.request.urlopen(url, params)
content = f.read()#{"reason":"操作成功","result":{"sid":"201906200911371223162juhe6hy","fee":1,"count":1},"error_code":0}
res = json.loads(content)#json转字典
if res:
error_code = res["error_code"]
if error_code == 0:
# 成功请求
return 'ok'
# print(res["result"])
else:
return "%s:%s" % (res["error_code"], res["reason"])
# print("%s:%s" % (res["error_code"], res["reason"]))
else:
return "request api error"
路由路由
# 手机验证码登录
path('loginTel/', login.loginTel,name='loginTel'),
方法方法
from blog.utils import sendMsg
from blog.utils import function # 引入自定义的验证码
# 手机验证登陆
def loginTel(request):
res = {'status': None, 'info': None}
# 点击发送短信执行以下程序
if request.POST.get('sendSms') == '1':
tel = request.POST.get('user_tel')
print(tel)
range_num = function.range_num(4); # 5454
request.session['validcode'] = range_num
result = sendMsg.request2(tel, range_num, "GET")
# result='ok'
if result == 'ok':
res['status'] = 1
# res['info']='发送成功%s'%range_num
res['info'] = '发送成功'
print(res)
return HttpResponse(json.dumps(res)) # 把这个结果告诉给前台,ajax
else:
res['status'] = 0
res['info'] = '发送失败'
return HttpResponse(json.dumps(res)) # 把这个结果告诉给前台,ajax
# 点击登录按钮执行以下程序:
if request.POST.get('dosubmit') == '1':
validcode_form = request.POST.get('validcode')
validcode_session = request.session.get('validcode') # 获取session
if validcode_form:
if validcode_form != validcode_session:
res['status'] = 0
res['info'] = '短信验证码不正确'
return HttpResponse(json.dumps(res)) # 把这个结果告诉给前台,ajax
else:
res['status'] = 0
res['info'] = '短信验证码不存在'
return HttpResponse(json.dumps(res)) # 把这个结果告诉给前台,ajax
# 写判断手机号是否在会员表中
member_obj = Member.objects.filter(member_tel=request.POST.get('user_tel')).first()
资源评论
weixin_38675341
- 粉丝: 8
- 资源: 998
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功