在flask中的注册界面中,请完成对email、用户名(大于4位小于20位)、密码(必须有大小写字母和特殊符号)、电话,QQ号码的表单数据合法性验证的代码示例
时间: 2023-05-20 12:03:10 浏览: 131
以下是一个基本的表单数据合法性验证的代码示例:
```python
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/register', methods=['POST'])
def register():
email = request.form.get('email')
username = request.form.get('username')
password = request.form.get('password')
phone = request.form.get('phone')
qq = request.form.get('qq')
# 验证email格式是否正确
if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
return jsonify({'error': 'Invalid email address'})
# 验证用户名长度是否符合要求
if len(username) < 4 or len(username) > 20:
return jsonify({'error': 'Username must be between 4 and 20 characters'})
# 验证密码是否符合要求
if not re.match(r"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$", password):
return jsonify({'error': 'Password must contain at least one uppercase letter, one lowercase letter, one number, one special character, and be at least 8 characters long'})
# 验证电话号码是否符合要求
if not re.match(r"^1[3-9]\d{9}$", phone):
return jsonify({'error': 'Invalid phone number'})
# 验证QQ号码是否符合要求
if not re.match(r"^[1-9]\d{4,10}$", qq):
return jsonify({'error': 'Invalid QQ number'})
# 如果所有数据都合法,返回成功信息
return jsonify({'success': 'Registration successful'})
if __name__ == '__main__':
app.run(debug=True)
```
这个示例使用了正则表达式来验证表单数据的合法性,可以根据需要进行修改和扩展。
阅读全文