最近用APIFlask的时候遇到一个需求->多用户注册
具体描述:
前端提交多个用户注册的信息,格式如下
[
{
"email": "user@example.com",
"group": 10,
"password": "string",
"username": "string"
},
{
"email": "user@example.com",
"group": 10,
"password": "string",
"username": "string"
}
]
后端需要根据用户名判断用户是否在数据库中, 但如果前端提交的数组中有重复的用户,应该如何处理比较好?
以下是我目前的处理:
for data in datas:
user:User = User.query.filter(User.username == data['username']).count()
if user:
raise ValueError(f'{data["username"]}用户已存在')
db.session.query
user:User = User()
user.email = data['email']
user.username = data['username']
user.set_password(data['password'])
user.group = data['group']
db.session.add(user)
db.session.commit()
显然这样处理和数据库的联系过多了,想请教一下有没有更好的方法。
另外还有一个引申问题:
上面的代码中,前端返回的用户名、密码、邮箱等信息都需要手动填写。
想请问一下有没有办法写成类似js
的解构一样的默认处理
e => {
let item = { ...{ username: ' ', text: ' ', attr: {}, option: null }, ...e}
}
Thx!