打包
pip freeze > requirements.txt
pip install -r requirements.txt
腾讯发送短信
pip install qcloudsms_py
注册登录
https://console.cloud.tencent.com/smsv2/
Django的ModelForm
- 自动生成表单
- 点击获取验证
- 获取手机号
- 向后台发送ajax
- 向手机发送验证码(ajax/sms/redis)
- 验证码失效处理60s
redis基本操作
- 安装Redis
https://github.com/microsoftarchive/redis/releases
- python操作redis的模块
pip3 install redis
- 写代码去操作redis
import redis
# 直接连接redis
conn = redis.Redis(host='192.168.43.208', port=6379, password='19990205', encoding='utf-8')
# 设置键值:15131255089="9999" 且超时时间为10秒(值写入到redis时会自动转字符串)
conn.set('17860631217', 9999, ex=60)
# 根据键获取值:如果存在获取值(获取到的是字节类型);不存在则返回None
value = conn.get('17860631217')
print(value)
- 上面python操作redis的示例是以直接创建连接的方式实现,每次操作redis如果都重新连接一次效率会比较低,建议使用redis连接池来替换,例如:
import redis
# 创建redis连接池(默认连接池最大连接数 2**31=2147483648)
pool = redis.ConnectionPool(host='192.168.43.208', port=6379, password='19990205', encoding='utf-8', max_connections=1000)
# 去连接池中获取一个连接
conn = redis.Redis(connection_pool=pool)
# 设置键值:15131255089="9999" 且超时时间为10秒(值写入到redis时会自动转字符串)
conn.set('name', "秦琪", ex=60)
# 根据键获取值:如果存在获取值(获取到的是字节类型);不存在则返回None
value = conn.get('name')
print(value)
django连接redis
- 安装django-redis模块(内部依赖redis模块)
pip3 install django-redis
- 在django项目的settings.py中添加相关配置
# 上面是django项目settings中的其他配置....
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://192.168.43.208:6379", # 安装redis的主机的 IP 和 端口
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"CONNECTION_POOL_KWARGS": {
"max_connections": 1000,
"encoding": 'utf-8'
},
"PASSWORD": "19990205" # redis密码
}
}
}
- 在django的视图中操作redis
from django.shortcuts import HttpResponse
from django_redis import get_redis_connection
def index(request):
# 去连接池中获取一个连接
conn = get_redis_connection("default")
conn.set('nickname', "秦琪", ex=10)
value = conn.get('nickname')
print(value)
return HttpResponse("OK")