Flask-security创建角色,用户并将user_id链接到role_id [英] Flask-security create role,user and linking user_id to role_id
问题描述
我将Flask-Security与SQLAlchemy结合使用
I using Flask-Security with SQLAlchemy
要添加用户或角色时
def addrole():
form=addroll()
createRole=user_datastore.create_role(name=form.role.data,description=form.description.data)
db.session.add(createRole)
db.session.commit()
在mysql表中添加一条记录属于我的创建,而两条记录或树空白记录在我想创建用户时同样认为发生 要将用户与角色相关联,我具有以下内容:
in mysql table add one record belong my creation and two or tree blank record same think happen when i want to create user To associate a user with a role, I have the following :
@app.route('/addR', methods=['GET', 'POST'])
@login_required
def addR():
email1=request.form['emails']
role1=request.form['role2']
user = user_datastore.find_user(email=request.args.get('email1'))
role = user_datastore.find_role(request.args.get('role1'))
user_datastore.add_role_to_user(user, role)
db.session.commit()
return redirect('/addroletouser' )
它在roles_users表中链接了错误的user_id和role_id.
It linking a wrong user_id and role_id in roles_users table.
推荐答案
在将Flask-Security与SQLAlchemy结合使用时,不需要手动链接记录,可以在user_datastore
中使用create_role
和create_user
.
这与用于初始化Flask-Security的user_datastore
相同.
一个简单的例子(请不要使用纯文本密码):
When using Flask-Security with SQLAlchemy you do not need to manually link the records, you can use create_role
and create_user
from the user_datastore
.
This is the same user_datastore
that you used to initialise Flask-Security.
A simple example (do not use plain text password please):
def seed():
user_datastore.create_role(name='admin')
user_datastore.create_user(username='admin', email='admin@example.com',
password='admin', roles=['admin'])
这篇关于Flask-security创建角色,用户并将user_id链接到role_id的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!