SQLalchemy 使用记录

1.models.py中添加该方法,可通过该方法转dict

#驼峰
def to_hump_dict(self):
return {commonUtils.str2Hump(c.name): getattr(self, c.name, None) for c in self.__table__.columns}
def to_dict(self):
    return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
Base.to_hump_dict = to_hump_dict
Base.to_dict = to_dict
class User(Base): __tablename__ = 'key_user' id = Column(INTEGER(11), primary_key=True, nullable=False, index=True) uid = Column(String(32), primary_key=True, nullable=False) username = Column(String(255), primary_key=True, nullable=False, index=True) remarks = Column(String(255)) creater = Column(String(255)) create_time = Column(TIMESTAMP)

 


2.查询(入参没有的情况)、分页、排序
  
if username:
  q = self.dbsession.query(KeyUser).filter(User.username == username)
if passwd:
  q = q.filter(User.passwd== passwd)
q.limit(pageSize).offset(int(page-1)*pageSize).order_by(User.id.desc()).all()

3.使用timestamp类型时,对应的python获取
  
func.current_timestamp()

转载于:https://www.cnblogs.com/zipon/p/10600745.html

SQLAlchemy 提供了全文检索的功能,可以通过使用其提供的 `tsvector` 和 `tsquery` 数据类型来实现。 首先需要安装 `psycopg2` (PostgreSQL 的 Python 驱动)和 `postgresql-contrib` (PostgreSQL 的扩展): ```python pip install psycopg2 sudo apt-get install postgresql-contrib ``` 然后在 PostgreSQL 数据库中创建一个全文检索的配置: ```sql CREATE TEXT SEARCH CONFIGURATION english ( COPY = pg_catalog.simple ); ALTER TEXT SEARCH CONFIGURATION english ALTER MAPPING FOR hword, hword_part, word WITH english_stem; ``` 接下来在 SQLAlchemy 中定义一个全文检索的列: ```python from sqlalchemy import Column, Integer, String, text from sqlalchemy.dialects.postgresql import TSVECTOR class MyTable(Base): __tablename__ = 'my_table' id = Column(Integer, primary_key=True) content = Column(String) search_vector = Column(TSVECTOR) __table_args__ = ( text("CREATE INDEX my_table_search_vector_idx ON my_table USING GIN(search_vector);"), ) ``` 定义完后需要在 `MyTable` 类中添加一个 `before_insert()` 方法,用于在插入数据前更新 `search_vector` 列: ```python from sqlalchemy import text class MyTable(Base): ... def before_insert(self): self.search_vector = func.to_tsvector('english', self.content) __table_args__ = ( text("CREATE INDEX my_table_search_vector_idx ON my_table USING GIN(search_vector);"), ) ``` 最后就可以使用 SQLAlchemy 的 `text()` 函数进行全文检索: ```python from sqlalchemy import text stmt = text("SELECT * FROM my_table WHERE search_vector @@ to_tsquery('english', :search_term)") results = session.execute(stmt, {'search_term': 'hello'}) ``` 这个查询将会返回所有包含 `hello` 的记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值