博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flask sqlalchemy联合wtf-form表单 查询需要的值是否存在
阅读量:5162 次
发布时间:2019-06-13

本文共 1684 字,大约阅读时间需要 5 分钟。

问题:

在注册的接口,传递过来的参数,比如 电话,昵称 等

在用sqlalchemy查询的时候,有什么方法可以一次性的查询所有需要 判断 是否唯一的数据
比如 电话,昵称,email

一次性查询这三个,如果就 电话 有重复的,就返回 电话重复 相对应的提示

email = User.query.filter_by(email=email).first()if email:    return jsonify({
"email": "该email已经被注册"})

我现在一条一条这么查,然后判断是否为空,是可以解决现有业务,但是感觉太LOW了,而且代码也太多了。

肯定不对。。求助各位大神要怎么写

 

解决:

1.

参考这篇文章:

使用exists(),or_() 配合查询

from sqlalchemy import or_filter(or_(User.email == 'ed', User.phone == '13911223344'))

 

2.

使用 flask-wtforms 插件, forms.py 内容如下

class AddUserForm(FlaskForm):    username = StringField(u'用户名', validators=[DataRequired(), Length(1, 64, message=u'姓名长度要在1和64之间'),                       Regexp(ur'^[\u4E00-\u9FFF]+$', flags=0, message=u'用户名必须为中文')])    email = StringField(u'邮箱', validators=[DataRequired(), Length(6, 64, message=u'邮件长度要在6和64之间'),                        Email(message=u'邮件格式不正确!')])    role = SelectField(u'权限', choices=[(u'True', u'管理员'), (u'False', u'一般用户') ])    status = SelectField(u'状态', choices=[(u'True', u'正常'), (u'False', u'注销') ])    submit = SubmitField(u'添加用户')    def validate_username(self, field):        if User.query.filter_by(username=field.data).first():            raise ValidationError(u'用户名已被注册!')    def validate_email(self, field):        if User.query.filter_by(email=field.data).first():            raise ValidationError(u'邮箱已被注册!')···然后在 html 中使用下面的方式渲染。
{
% for field_name, field_errors in addUserForm.errors|dictsort if field_errors %}{
% for error in field_errors %}
{
% endfor %} {% endfor %}
这样会得到你所需要的内容提示。

 

转载于:https://www.cnblogs.com/Paul-watermelon/articles/10253501.html

你可能感兴趣的文章
我的IOS学习历程-第七天
查看>>
json的两种表示结构(对象和数组).。
查看>>
iOS Undefined symbols for architecture xxx问题的总结
查看>>
bzoj 3685: 普通van Emde Boas树
查看>>
关于线程池,那些你还不知道的事
查看>>
二分类问题F-score评判指标(转载)
查看>>
JAVA基础之字符串和面向对象
查看>>
大数据R语言简析
查看>>
Ant自己主动编译打包&公布 android项目
查看>>
vc6编译stlport及常见问题
查看>>
week_one-python格式化输出
查看>>
Webservice 从客户端中检测到有潜在危险的 request.form值[解决方法]
查看>>
LNMP详细介绍
查看>>
素数判定算法
查看>>
那些文章
查看>>
AR增强现实席卷而来
查看>>
word记录
查看>>
Hibernate中ManyToMany的第三张表添加其他字段
查看>>
从壹开始前后端分离【 .NETCore2.1 +Vue 2 +AOP+DI】框架之一 || 前言
查看>>
Spring @Resource、@Autowired、@Qualifier的注解注入及区别
查看>>