表单验证时错误提示写法示例

 

布局文件中箭头指着的mobile就是ts文件中验证器代码中return中key为mobile这个值,这两个mobile是一样的,布局文件中hasError('mobile','mobile')第二个参数mobile是formcontrolName的值。

其他的都是类似的写法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基本的 Flask 注册表单数据合法性验证的代码示例: ```python from flask import Flask, render_template, request from flask_sqlalchemy import SQLAlchemy from sqlalchemy.orm import validates import re app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(120), unique=True, nullable=False) username = db.Column(db.String(20), unique=True, nullable=False) password = db.Column(db.String(120), nullable=False) phone = db.Column(db.String(11), unique=True, nullable=False) qq = db.Column(db.String(15), unique=True, nullable=False) @validates('email') def validate_email(self, key, email): if not re.match(r"[^@]+@[^@]+\.[^@]+", email): raise ValueError('Invalid email address') return email @validates('username') def validate_username(self, key, username): if len(username) < 4 or len(username) > 20: raise ValueError('Username must be between 4 and 20 characters') return username @validates('password') def validate_password(self, key, password): if len(password) < 8: raise ValueError('Password must be at least 8 characters') if not any(char.isdigit() for char in password): raise ValueError('Password must contain at least one digit') if not any(char.isupper() for char in password): raise ValueError('Password must contain at least one uppercase letter') if not any(char.islower() for char in password): raise ValueError('Password must contain at least one lowercase letter') if not any(char in '!@#$%^&*()_-+={}[]|\:;"<>,.?/~`' for char in password): raise ValueError('Password must contain at least one special character') return password @validates('phone') def validate_phone(self, key, phone): if not re.match(r"^1[3456789]\d{9}$", phone): raise ValueError('Invalid phone number') return phone @validates('qq') def validate_qq(self, key, qq): if not re.match(r"^\d{5,15}$", qq): raise ValueError('Invalid QQ number') return qq @app.route('/register', methods=['GET', 'POST']) def register(): if request.method == 'POST': email = request.form['email'] username = request.form['username'] password = request.form['password'] confirm_password = request.form['confirm_password'] phone = request.form['phone'] qq = request.form['qq'] try: user = User(email=email, username=username, password=password, phone=phone, qq=qq) db.session.add(user) db.session.commit() return 'Registration successful' except ValueError as e: return str(e) return render_template('register.html') ``` 在这个示例中,我们使用了 Flask 和 SQLAlchemy 来创建一个简单的注册表单,其中包含了 email、邮箱验证码、用户名、密码、确认密码、电话和 QQ 号码等字段。我们使用了 SQLAlchemy 的 ORM 功能来将这些字段存储到 SQLite 数据库中。 在 User 类中,我们使用了 @validates 装饰器来对每个字段进行合法性验证。例如,在 validate_email 方法中,我们使用了正则表达式来验证 email 地址的格式是否正确。如果验证失败,我们会抛出一个 ValueError 异常,这个异常会在注册表单提交被捕获并返回给用户。 在 register 视图函数中,我们首先从表单中获取所有字段的值,然后创建一个 User 对象并将其添加到数据库中。如果添加成功,我们返回一个成功的消息;否则,我们会捕获 ValueError 异常并将其转换为字符串返回给用户。 这个示例只是一个基本的表单验证示例,你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值