3

SQLAlchemy で Flask-Security を使用しています

ユーザーやロールを追加したい場合

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テーブルに、私の作成に属する1つのレコードを追加し、2つまたはツリーの空白のレコードを追加します。ユーザーを作成したいときに同じことが起こると思います。ユーザーをロールに関連付けるには、次のようにします。

   @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

Flask-Security を SQLAlchemy で使用する場合、レコードを手動でリンクする必要はcreate_roleありません。これは、Flask-Security の初期化に使用したものと同じです。簡単な例 (平文のパスワードは使用しないでください):create_useruser_datastoreuser_datastore

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 に答える