django社交类程序笔记(7)短信平台对接

这篇博客介绍了如何在Django社交应用中实现个人模块的开发,包括用户数据模型设计、手机注册、短信验证码登录、获取及修改个人资料以及头像上传。文章详细讲解了如何对接互亿无线短信平台,提供了请求网址、参数以及如何设置动态密码。此外,还提到了使用HTTPS协议和MD5加密,并需安装第三方库'requests'。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人模块开发
功能概览:

  1. 用户数据模型设计
  2. 手机注册
  3. 短信验证码登录
  4. 获取个人资料
  5. 修改个人资料
  6. 头像上传

在user文件夹下创建api.py,先写一些占位函数:

def get_verify_code(request):
    """手机注册"""
    phonenum = request.GET.get('phonenum')



def login(request):
    """短信验证码登录"""
    pass


def get_profile(request):
    """获取个人资料"""
    pass


def modify_profile(request):
    """修改个人资料"""
    pass


def upload_avatar(request):
    """头像上传"""
    pass

然后找个发送短信的平台,注册充值,查看调用文档:
例如:https://www.ihuyi.com/api/sms.html
互亿无线的短信:
请求网址:
https://106.ihuyi.com/webservice/sms.php?method=Submit
请求参数:
参数名称 参数值描述 必填
account APIID(用户中心【验证码通知短信】-【产品纵览】查看) 是
password 1、APIKEY(用户中心【验证码通知短信】-【产品纵览】查看)
2、动态密码(生成动态密码方式请看该文档末尾的说明) 是
mobile 接收手机号码,只能提交1个号码 是
content 短信内容(编码格式为 UTF-8,支持 300 个字的长短信,长短信 按多条计费)
例如:您的验证码是:1234。请不要把验证码泄露给其他人。 是
time Unix时间戳(10位整型数字,当使用动态密码方式时为必填) 否
format 返回格式(可选值为:xml或json,系统默认为xml) 否
在主项目下创建文件config.py,然后输入代码:

"""
第三方配置
"""

"""互亿无限短信配置"""

HY_SMS_URL = 'https://106.ihuyi.com/webservice/sms.php?method=Submit'
HY_SMS_PARAMS = {
    'account': 'C9254XXXX',
    'password': 'b2ce23ae838ea7XXXXXX',
    'content': '您好,您的验证码是:%s。请不要把验证码泄露给其他人。',
    'mobile': None,
    'format': 'json',
}

这里XXX的内容需要自己根据自己账号查看。
这里这用到了采用https协议和MD5加密的知识。

安装第三方库“requests”

pip install requests

在user文件夹下创建logic.py,写下面代码:

"""逻辑写在这里"""
import random

import requests

from spiter.spiter import config  # 引用的时候标准库最上面,第三方库中间,个人的库写在最下面。
from worker import call_by_worker


def gen_verify_code(length=6):
    """产生一个验证码"""
    return random.randrange(10 ** (length - 1), 10 ** length)
    # 10的5次方(100000)到10的6次方(1000000)之间就是6位数验证码


@call_by_worker
def send_verify_code(phonenum):
    vcode = gen_verify_code()
    sms_cfg = config.HY_SMS_PARAMS.copy()  # 使用浅拷贝,字典 使用d.copy()
    sms_cfg['content'] = sms_cfg['content'] % vcode
    sms_cfg['mobile'] = phonenum
    response = requests.post(config.HY_SMS_URL, data=config.sms_cfg)
    return response
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值