使用Flask-SQLAlchemy创建基本表

b_g

我有点困惑如何使用Flask-SQLAlchemy创建表-我在其他地方发现的示例似乎在使用与以下示例不同的初始化方法(例如,使用Base)。

db = SQLAlchemy(app)
migrate = Migrate(app, db)

# Define models
roles_users = db.Table('roles_users',
        db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
        db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))

class Role(db.Model, RoleMixin):
    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):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    nickname = db.Column(db.String(255))
    favcolor = db.Column(db.String(255)) #FAVS
    favshape = db.Column(db.String(255)) #FAVS
    favflower = db.Column(db.String(255)) #FAVS
    roles = db.relationship('Role', secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def __str__(self):
            return '<User id=%s email=%s>' % (self.id, self.email)

基本上,假设我想有所有的的fav变量(favcolorfavshape,和favflower)在其自己的,叫一个单独的表favorites

如何确保可以使用primary_key访问这些收藏夹?

似乎很基本!希望有一个简单的方法可以做到这一点...

大卫主义

创建与用户具有一对一关系的“ UserFavorites”模型。

class UserFavorites(db.Model):
    user_id = db.Column(db.Integer, db.ForeignKey(User.id), primary_key=True)
    color = db.Column(db.String, nullable=False, default='')
    shape = db.Column(db.String, nullable=False, default='')
    flower = db.Column(db.String, nullable=False, default='')

    user = db.relationship(User, backref=db.backref('favorites', uselist=False))

在创建用户实例的同时创建UserFavorites实例。

user = User(email='[email protected]', favorites=UserFavorites(color='green'))
db.session.add(user)
db.session.commit()

user = User.query.filter(
    User.email == '[email protected]'
).options(
    db.joinedload(User.favorites)
).one()
print user.favorites.color

您可以跨此关系加入,以向用户查询有关其收藏夹的信息。

likes_green = User.query.join(User.favorites).filter(
    UserFavorites.color == 'green'
).all()
print [u.email for u in likes_green]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Flask + SqlAlchemy仅创建一个表

来自分类Dev

使用SQLAlchemy在Flask中创建表不起作用

来自分类Dev

使用 Flask-Sqlalchemy 从某个模型创建各种表

来自分类Dev

如何在Flask的SQLAlchemy中使用自动增量主键创建关联表?

来自分类Dev

如何使用Postgres在SQLAlchemy中创建表?

来自分类Dev

SQLAlchemy:使用动态创建的名称插入表

来自分类Dev

Flask SQLAlchemy关联表:创建反向引用时出错

来自分类Dev

Flask-SQLAlchemy 不会创建表和外键

来自分类Dev

使用外键创建不是由SQLAlchemy创建的表的模型

来自分类Dev

Flask + SqlAlchemy ALTER表

来自分类Dev

在Flask中使用SQLAlchemy创建数据库

来自分类Dev

使用Flask从HTML表中删除单个SQLAlchemy行

来自分类Dev

使用Flask SQLAlchemy从MySQL表访问所有列

来自分类Dev

使用flask-sqlalchemy比较两个表

来自分类Dev

BigQuery-使用分区创建视图,但基本表没有

来自分类Dev

MySQL,SQLAlchemy,Flask和flask.ext.script的麻烦-create_all()无法创建表

来自分类Dev

如何使用SQLAlchemy仅创建一个表?

来自分类Dev

使用Flask创建RESTful API?

来自分类Dev

Flask SQLAlchemy:如何扩展基本Model类?

来自分类Dev

Flask SQLAlchemy:如何扩展基本Model类?

来自分类Dev

有关使用Flask + MySQL + Flask-SQLAlchemy的问题

来自分类Dev

如何使用MySQL和Flask创建表并插入数据

来自分类Dev

如何使用MySQL和Flask创建表并插入数据

来自分类Dev

未使用Flask和PyMySQL创建MySQL表

来自分类Dev

Flask-SQLAlchemy-何时创建和销毁表/数据库?

来自分类Dev

如何创建单独的文件以生成不同的数据库 Flask-SqlAlchemy 表?

来自分类Dev

将Mixer与Flask-SQLAlchemy结合使用

来自分类Dev

使用Flask-SQLAlchemy选择多对多

来自分类Dev

使用Flask-SQLAlchemy批量插入

Related 相关文章

  1. 1

    使用Flask + SqlAlchemy仅创建一个表

  2. 2

    使用SQLAlchemy在Flask中创建表不起作用

  3. 3

    使用 Flask-Sqlalchemy 从某个模型创建各种表

  4. 4

    如何在Flask的SQLAlchemy中使用自动增量主键创建关联表?

  5. 5

    如何使用Postgres在SQLAlchemy中创建表?

  6. 6

    SQLAlchemy:使用动态创建的名称插入表

  7. 7

    Flask SQLAlchemy关联表:创建反向引用时出错

  8. 8

    Flask-SQLAlchemy 不会创建表和外键

  9. 9

    使用外键创建不是由SQLAlchemy创建的表的模型

  10. 10

    Flask + SqlAlchemy ALTER表

  11. 11

    在Flask中使用SQLAlchemy创建数据库

  12. 12

    使用Flask从HTML表中删除单个SQLAlchemy行

  13. 13

    使用Flask SQLAlchemy从MySQL表访问所有列

  14. 14

    使用flask-sqlalchemy比较两个表

  15. 15

    BigQuery-使用分区创建视图,但基本表没有

  16. 16

    MySQL,SQLAlchemy,Flask和flask.ext.script的麻烦-create_all()无法创建表

  17. 17

    如何使用SQLAlchemy仅创建一个表?

  18. 18

    使用Flask创建RESTful API?

  19. 19

    Flask SQLAlchemy:如何扩展基本Model类?

  20. 20

    Flask SQLAlchemy:如何扩展基本Model类?

  21. 21

    有关使用Flask + MySQL + Flask-SQLAlchemy的问题

  22. 22

    如何使用MySQL和Flask创建表并插入数据

  23. 23

    如何使用MySQL和Flask创建表并插入数据

  24. 24

    未使用Flask和PyMySQL创建MySQL表

  25. 25

    Flask-SQLAlchemy-何时创建和销毁表/数据库?

  26. 26

    如何创建单独的文件以生成不同的数据库 Flask-SqlAlchemy 表?

  27. 27

    将Mixer与Flask-SQLAlchemy结合使用

  28. 28

    使用Flask-SQLAlchemy选择多对多

  29. 29

    使用Flask-SQLAlchemy批量插入

热门标签

归档