|
|
| Zeile 3: |
Zeile 3: |
| | Python_things | <span class="glyphicon glyphicon-share-alt">''Python things''</span> | | Python_things | <span class="glyphicon glyphicon-share-alt">''Python things''</span> |
| | </btn> | | </btn> |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − | === User Role models for Flask-SQLAlchemy ===
| |
| − |
| |
| − | old...
| |
| − |
| |
| − | <pre>
| |
| − | class Role(db.Model, RoleMixin):
| |
| − | __tablename__ = table_prefix + "role"
| |
| − | id = db.Column(db.Integer(), primary_key=True)
| |
| − | role = db.Column(db.String(80), unique=True)
| |
| − | description = db.Column(db.String(255))
| |
| − | users = db.relationship(
| |
| − | 'User',
| |
| − | secondary=table_prefix + 'user_roles',
| |
| − | back_populates='roles',
| |
| − | lazy='dynamic')
| |
| − |
| |
| − |
| |
| − | class User(UserMixin, db.Model):
| |
| − | __tablename__ = table_prefix + "user"
| |
| − | id = db.Column(db.Integer, primary_key=True)
| |
| − | username = db.Column(db.String(50), index=True, unique=True)
| |
| − | password_hash = db.Column(db.String(128))
| |
| − | email = db.Column(db.String(100), index=True, unique=True)
| |
| − | language = db.Column(db.String(10), default="en_UK")
| |
| − | roles = db.relationship(
| |
| − | 'Role',
| |
| − | secondary=table_prefix + 'user_roles',
| |
| − | back_populates='users',
| |
| − | cascade='all, delete',
| |
| − | lazy='dynamic')
| |
| − | </pre>
| |
| − |
| |
| − | new...? UserMixin and RoleMixin from Flask-Security with minimal requirements included (see also: [https://pythonhosted.org/Flask-Security/models.html Flask Security (Models)]
| |
| − |
| |
| − | <pre>
| |
| − | class Role(db.Model, RoleMixin):
| |
| − | __tablename__ = table_prefix + "role"
| |
| − | id = db.Column(db.Integer(), primary_key=True)
| |
| − | name = db.Column(db.String(80), unique=True)
| |
| − | description = db.Column(db.String(255))
| |
| − |
| |
| − |
| |
| − | class User(db.Model, UserMixin):
| |
| − | __tablename__ = table_prefix + "user"
| |
| − | id = db.Column(db.Integer, primary_key=True)
| |
| − | username = db.Column(db.String(50), index=True, unique=True)
| |
| − | password_hash = db.Column(db.String(128))
| |
| − | email = db.Column(db.String(100), index=True, unique=True)
| |
| − | active = db.Column(db.Boolean(), default=False)
| |
| − | confirmed_at = db.Column(db.DateTime())
| |
| − | language = db.Column(db.String(10), default="en_UK")
| |
| − | roles = db.relationship(
| |
| − | 'Role',
| |
| − | secondary=table_prefix + 'userrole',
| |
| − | backref=db.backref('users', lazy='dynamic'),
| |
| − | passive_deletes=True)
| |
| − |
| |
| − | def __repr__(self):
| |
| − | return '<User {}>'.format(self.username)
| |
| − |
| |
| − | class UserRole(db.Model):
| |
| − | __tablename__ = table_prefix + 'userrole'
| |
| − | user_id = db.Column(
| |
| − | db.Integer(),
| |
| − | db.ForeignKey(table_prefix
| |
| − | + 'user.id',
| |
| − | ondelete='CASCADE')
| |
| − | )
| |
| − | role_id = db.Column(
| |
| − | db.Integer(),
| |
| − | db.ForeignKey(table_prefix + 'role.id')
| |
| − | )
| |
| − | __table_args__ = (
| |
| − | PrimaryKeyConstraint(
| |
| − | user_id,
| |
| − | role_id),
| |
| − | {})
| |
| − | </pre>
| |