账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    flask sqlalchemy如何获取某表中的设置了index的column
    44
    0

    假设有一个表A,他的字段大致如下:

    column index
    id True
    name True
    phone False
    address False

    然后我想获取其中所有设置了索引的column,该如何操作。

    # 例如
    def get_index(table):
      return table_index_cloumn
    
    # print [id, name]
    print get_index(A)

    请帮忙用sqlalchemy实现,thx

    补充
    应该是我的描述有问题,所以在这里再把我想问的详细描述下

    # 首先声明一点,我想问的不是mysql的查询语句
    # 在sqlalchemy中,可以通过如下方式,获得某个表中的全部字段
    # 其中model为某个类的抽象,如 class Model: ........
    model.selectable.froms[0].target_table.columns.keys()
    # 所以在这里想请教的问题就是有没有一种能类似于上面的方式,来获取这个model中的所有设置了索引column
    # 而不是去mysql中手动写sql,这种方式对我想做的没太大意义。
    # google了好多,都没找到解决方案,所以请教下有没有某位大牛能帮忙解下惑
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 殘缺、的愛 普通会员 1楼

      在Flask-SQLAlchemy中,你可以使用session对象来获取表中的设置了index的column。以下是一个示例:

      ```python from flask_sqlalchemy import SQLAlchemy from sqlalchemy.orm import sessionmaker

      创建数据库模型

      db = SQLAlchemy()

      class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False)

      创建数据库配置

      app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db.create_all()

      创建数据库连接

      sessionmaker(bind=db) session = sessionmaker(bind=db) ```

      在这个示例中,我们首先导入了SQLAlchemysessionmaker模块。然后,我们创建了一个数据库模型User,它有一个主键id,一个字符串类型的name和一个字符串类型的email。接着,我们创建了一个数据库配置,并使用db.create_all()方法创建了所有的数据库表。最后,我们创建了一个数据库连接,并使用sessionmaker(bind=db)来创建一个会话。

      要获取表中的设置了index的column,你可以这样使用session对象:

      ```python

      获取所有的用户名

      users = session.query(User).all()

      获取某个用户的用户名

      user = session.query(User).filter_by(name='John Doe').first()

      获取某个用户的电子邮件

      email = user.email ```

      在这个示例中,session.query(User).all()将返回所有的User对象,而session.query(User).filter_by(name='John Doe')将返回所有名字为'John Doe'的User对象。最后,session.query(User).filter_by(name='John Doe').first()将返回User对象,其中电子邮件字段的值是该对象的电子邮件字段的值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部