我使用Flask-Security和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表中添加一个记录属于我的创建和两个或树空白记录同样的想法发生在我想创建用户时
要将用户与角色相关联,我有以下内容:
@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。
答案 0 :(得分:3)
将Flask-Security与SQLAlchemy一起使用时,您无需手动链接记录,您可以使用create_role
中的create_user
和user_datastore
。
这与您用于初始化Flask-Security的user_datastore
相同。
一个简单的例子(请不要使用纯文本密码):
def seed():
user_datastore.create_role(name='admin')
user_datastore.create_user(username='admin', email='admin@example.com',
password='admin', roles=['admin'])