折腾:
期间,需要去
尝试使用redis,去存储验证码
管理验证码:加上过期时间,用于后期验证是否过期而无效
flask开发restful api系列(5)-短信验证码 – 月儿弯弯0204 – 博客园
搜:
Flask redis 扩展
参考:
pip安装flask-redis后,如何启动redis-server服务? – Redis – 知乎
Flask redis 保存键值对
redis_store
python redis_store
flask redis_store
Server-side Sessions with Redis | Flask (A Python Microframework)
Flask-Session — Flask-Session 0.3.0 documentation
-》好像是:
Flask的session,底层支持各种存储,包括redis,以及mongodb,memcache等
Flask-And-Redis — Flask-And-Redis 0.6 documentation
GitHub – underyx/flask-redis: A Flask extension for using Redis
-》这里有之前找的redis_store
GitHub – andymccurdy/redis-py: Redis Python Client
->有点点搞懂了:
-》flask-redis是基于redis-py的
-》要用redis之前,需要先安装:redis-py
-》redis-py,就是:pip install redis中redis
-》另外,这些都只是python的redis的客户端,还需要去在服务器上安装redis服务器端,需要去参考官网:
去安装。
不过由于之前已经折腾过一些reis的东西了。
所以去参考之前的:
-》其实可以直接pip去安装flask-redis,其会自动安装所依赖的redis的库的
->然后去安装flask-redis
(RunningFast) ➜ RunningFast pip install flask-redis Collecting flask-redis Using cached Flask_Redis-0.3.0-py2.py3-none-any.whl Requirement already satisfied (use –upgrade to upgrade): Flask>=0.8 in /root/Envs/RunningFast/lib/python2.7/site-packages (from flask-redis) Collecting redis>=2.7.6 (from flask-redis) Using cached redis-2.10.5-py2.py3-none-any.whl Requirement already satisfied (use –upgrade to upgrade): itsdangerous>=0.21 in /root/Envs/RunningFast/lib/python2.7/site-packages (from Flask>=0.8->flask-redis) Requirement already satisfied (use –upgrade to upgrade): Jinja2>=2.4 in /root/Envs/RunningFast/lib/python2.7/site-packages (from Flask>=0.8->flask-redis) Requirement already satisfied (use –upgrade to upgrade): Werkzeug>=0.7 in /root/Envs/RunningFast/lib/python2.7/site-packages (from Flask>=0.8->flask-redis) Requirement already satisfied (use –upgrade to upgrade): click>=2.0 in /root/Envs/RunningFast/lib/python2.7/site-packages (from Flask>=0.8->flask-redis) Requirement already satisfied (use –upgrade to upgrade): MarkupSafe in /root/Envs/RunningFast/lib/python2.7/site-packages (from Jinja2>=2.4->Flask>=0.8->flask-redis) Installing collected packages: redis, flask-redis Successfully installed flask-redis-0.3.0 redis-2.10.5 |
果然自动帮忙安装了redis库:
Successfully installed flask-redis-0.3.0 redis-2.10.5
去参考:
[已解决]为Flask的后台任务而在CentOS中安装Redis
想要用:
redis-server /etc/redis/redis.conf |
启动redis服务器,不过发现之前已经启动过了:
(RunningFast) ➜ RunningFast ll /etc/redis total 48K -rw-r–r– 1 root root 46K Sep 3 21:59 redis.conf (RunningFast) ➜ RunningFast redis-server /etc/redis/redis.conf 14291:M 08 Oct 15:08:02.983 # Creating Server TCP listening socket 127.0.0.1:6379: bind: Address already in use (RunningFast) ➜ RunningFast netstat -tulpn | grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 19659/redis-server |
然后参考官网:
GitHub – underyx/flask-redis: A Flask extension for using Redis
去写代码
看到有说:REDIS_URL
不过之前的项目好像也没去设置REDIS_URL也是可以的。
【已解决】Flask中如何使用flask-redis去保存读取验证数据
【总结】
此处,在之前安装好redis的server的基础上,去:
redis-server /etc/redis/redis.conf |
确保运行了redis的服务器。
然后再去Python和flask的虚拟环境中安装flask-redis:
pip install flask-redis |
其会自动安装所依赖的库:redis(即redis-py)
然后代码中:
from flask import Flask from flask_redis import FlaskRedis app = Flask(__name__, instance_relative_config=True) redis_store = FlaskRedis(app) savedPhoneSmsCode = redis_store.set(phone, smsCodeStr) gLog.debug(“savedPhoneSmsCode=%s”, savedPhoneSmsCode) setExpireSmsCode = redis_store.expire(phone, 60) gLog.debug(“setExpireSmsCode=%s”, setExpireSmsCode) readbackSmsCode = redis_store.get(phone) gLog.debug(“readbackSmsCode=%s”, readbackSmsCode) |
即可实现:
保存手机号对应的验证码,且设置了过期时间
之后即可通过改手机号,能否读取到验证码,而判断验证码是否过期了。
转载请注明:在路上 » 【已解决】Flask中用redis保存和管理验证码