class Register(Resource): def post(self): id = request.json.get('id') mobile = request.json.get('mobile') username = request.json.get('username') password = request.json.get('password') password2 = request.json.get('password2') head_pic = request.json.get('head_pic') code = request.json.get('code') if not all([mobile, username, password, password2]): return jsonify(code=400, msg='缺少必要参数') if not re.match(r'^1[3-8]\d{9}$', mobile): return jsonify(code=400, msg='手机号格式不正确') if password != password2: return jsonify(code=400, msg='两次输入的密码不一致') # 从Redis中获取验证码 verification_code = redis_connection.get('verification_code:' + mobile) print(verification_code) if verification_code.decode() != code: return jsonify(code=400, msg='验证码错误') user = NewsUser.query.filter_by(mobile=mobile).first() if user: return jsonify(code=400, msg='该手机号已注册') user = NewsUser(mobile=mobile, username=username, password=password, id=id) db.session.add(user) db.session.commit() return jsonify(code=200, msg='注册成功') class Send_Code(Resource): def get(self): send_verification_code() return jsonify(code=200, msg='发送成功') global_token = None 上面代码有问题验证码获取不到,帮我修改一下,并找出错误
时间: 2024-04-21 08:25:11 浏览: 14
根据你提供的代码,我注意到获取验证码的部分使用了Redis进行存储和获取。但是在获取验证码之前,没有对Redis进行连接和初始化。因此,你需要在代码中添加Redis连接和初始化的代码。
首先,你需要导入`redis`库并创建一个Redis连接。假设你的Redis服务器位于本地主机上,默认端口为6379,你可以按照以下方式进行连接和初始化:
```python
import redis
# 创建Redis连接
redis_connection = redis.Redis(host='localhost', port=6379)
# ...
class Register(Resource):
def post(self):
# ...
# 从Redis中获取验证码
verification_code = redis_connection.get('verification_code:' + mobile)
if verification_code is None or verification_code.decode() != code:
return jsonify(code=400, msg='验证码错误')
# ...
# ...
```
在上述代码中,我们首先导入`redis`库,然后创建一个Redis连接对象`redis_connection`。接下来,在`Register`类的`post`方法中,我们通过`redis_connection.get`方法从Redis中获取验证码,并添加了一个条件判断来验证验证码是否正确。
请确保在运行代码之前已经安装了`redis`库,可以通过运行以下命令进行安装:
```
pip install redis
```
这样修改后,应该能够正确获取并验证验证码了。