3

我将 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。

4

1 回答 1

4

create_role将 Flask-Security 与 SQLAlchemy 一起使用时,您不需要手动链接记录,您可以create_user使用user_datastore. 这与user_datastore您用于初始化 Flask-Security 的相同。一个简单的例子(请不要使用纯文本密码):

def seed():
  user_datastore.create_role(name='admin')
  user_datastore.create_user(username='admin', email='admin@example.com',
                             password='admin', roles=['admin'])
于 2015-07-30T11:20:45.053 回答