问题和BUG
Flask-SQLAlchemy选择日期等于今天的数据
https://segmentfault.com/q/1010000014045246
sqlalchemy几种查询方式总结
http://www.cnblogs.com/shenckicc/p/6797990.html
Python SQLAlchemy 不确定条件查询
https://www.jianshu.com/p/a33f48387efa
sqlachemy中批量删除的问题
session.query(User).filter(User.id.in_((1, 2, 3))).delete(synchronize_session=False)
session.commit() # or session.expire_all()
https://segmentfault.com/q/1010000000130368
SQLAlchemy ORM 批量插入数据几种方法
由于工作需要,需要批量插入大量数据,了解到以下几种批量插入方法
第一种方法:
s = Session()
objects = [
User(name="u1"),
User(name="u2"),
User(name="u3")]
s.bulk_save_objects(objects)
第二种方法:
objects = [User(name="u1"), User(name="u2"), User(name="u3")]
session.add_all(objects)
session.commit()
py-sqlalchemy更新数据未报错但数据不更新:
1.filter过滤id时不能用id==xxxArticle.query.filter(id == item_id)
而是Article.query.filter(Article.id == item_id)
2.update()之后要commit():
for i in params.get('item_id').split(','):
Article.query.filter(Article.id == i).update({Article.active_flag: active_flag})
db.session.commit()
只查看数据是否存在,不取出数据(提高性能):
existance = db.session.query(exists().where(CollegeCategory.id == params.get('category_id'))).scalar()
if not existance: # True or False:
return auth_handler(SYS_STATUS.FAILURE, None, '文章分类不存在')
第二种方法:
if session.query(Item.id).filter(Item.email==newItem.email,
Item.type==newItem.type).count() > 0:
// item exists
第三种方法:
db.session.query(exists().where(User.phone_prefix == phone[0],User.phone== phone[1])).scalar()
FLask 分词搜索:
keyword_list = list(jieba.cut_for_search(params.get('input')))
keyword_filter = [CollegeCategory.name.like('%{}%'.format(kw)) for kw in keyword_list]
categorie_list = CollegeCategory.query.filter(*keyword_filter).with_entities(
*college_category_basic).order_by(order_mode).paginate(page=page_index,
per_page=page_size,
error_out=False)
自定义sqlalchemy查询出来的字段名
比如说,user.name原本返回‘name’现在改成‘姓名’:user.name.label("姓名")
select username, userid, 'user' as new_column from users_table
users_table.c.userid.label('NewColumn')
https://stackoverflow.com/questions/3576382/select-as-in-sqlalchemy