python 表单验证 封装类
时间: 2023-10-19 12:31:55 浏览: 113
当我们使用Python开发Web应用程序时,表单验证是一个常见的任务。为了方便重复使用和维护,我们可以将表单验证逻辑封装到一个类中。
下面是一个简单的示例,展示了如何封装一个表单验证类:
```python
class FormValidator:
def __init__(self, form_data):
self.form_data = form_data
self.errors = {}
def required(self, field):
value = self.form_data.get(field)
if not value:
self.errors[field] = f"{field} is required."
def email(self, field):
value = self.form_data.get(field)
if value and not re.match(r"[^@]+@[^@]+\.[^@]+", value):
self.errors[field] = f"Invalid email address."
# 添加其他验证方法,如长度、数字等等
def is_valid(self):
return len(self.errors) == 0
```
在上面的示例中,我们定义了一个 `FormValidator` 类,它有一个 `__init__` 方法用于接收表单数据,并初始化错误字典。
然后我们定义了一些验证方法,如 `required` 和 `email`。这些方法接收字段名作为参数,并根据特定的验证规则检查字段值。如果验证失败,将错误信息添加到错误字典中。
最后,我们提供了一个 `is_valid` 方法,用于检查是否存在任何错误。如果错误字典为空,则表单验证通过。
使用这个表单验证类的示例代码如下:
```python
form_data = {
'username': 'john_doe',
'email': 'john@example.com'
}
validator = FormValidator(form_data)
validator.required('username')
validator.email('email')
if validator.is_valid():
print("Form validation passed.")
else:
print("Form validation failed.")
print(validator.errors)
```
上述示例将输出 "Form validation passed.",因为我们添加的验证规则都通过了。如果其中一个验证失败,将输出错误信息。
当然,这只是一个简单的示例。在实际应用中,你可能需要根据具体的需求添加更多的验证规则和逻辑。
希望这个示例能帮助到你!如有任何问题,请随时提问。
阅读全文