Python things: Unterschied zwischen den Versionen

Aus Froggis Wissenssammlung
Wechseln zu:Navigation, Suche
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
<btn wrapperclass="btn-group-vertical" class="btn-primary" size="md">
 
<btn wrapperclass="btn-group-vertical" class="btn-primary" size="md">
  WTF Integer| <span class="glyphicon glyphicon-share-alt">''WTF Integer''</span>
+
  WTF_Know_how| <span class="glyphicon glyphicon-share-alt">''WTF knowhow''</span>
  Python_things | <span class="glyphicon glyphicon-share-alt">''Python things''</span>
+
Flask Security | <span class="glyphicon glyphicon-share-alt">''Flask Security knowledgebase''</span>
 +
SQLAlchemy_Things | <span class="glyphicon glyphicon-share-alt">''Things about SQLAlchemy''</span>
 +
  Virtualenv | <span class="glyphicon glyphicon-share-alt">''Create and use a virtual environment''</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>
 

Aktuelle Version vom 14. August 2019, 14:22 Uhr

<btn wrapperclass="btn-group-vertical" class="btn-primary" size="md">

WTF_Know_how| WTF knowhow
Flask Security | Flask Security knowledgebase

SQLAlchemy_Things | Things about SQLAlchemy

Virtualenv | Create and use a virtual environment

</btn>