### 排序:
1. order_by:可以指定根据这个表中的某个字段进行排序,如果在前面加了一个-,代表的是降序排序。
2. 在模型定义的时候指定默认排序:有些时候,不想每次在查询的时候都指定排序的方式,可以在定义模型的时候就指定排序的方式。有以下两种方式:
* relationship的order_by参数:在指定relationship的时候,传递order_by参数来指定排序的字段。
* 在模型定义中,添加以下代码:

__mapper_args__ = {
"order_by": title
}

即可让文章使用标题来进行排序。
3. 正序排序与倒序排序:默认是使用正序排序。如果需要使用倒序排序,那么可以使用这个字段的`desc()`方法,或者是在排序的时候使用这个字段的字符串名字,然后在前面加一个负号。

 1 #encoding: utf-8
 2
 3 from sqlalchemy import create_engine,Column,Integer,Float,Boolean,DECIMAL,Enum,Date,DateTime,Time,String,Text,func,and_,or_,ForeignKey,Table
 4 from sqlalchemy.dialects.mysql import LONGTEXT
 5 from sqlalchemy.ext.declarative import declarative_base
 6 from sqlalchemy.orm import sessionmaker,relationship,backref
 7 # 在Python3中才有这个enum模块,在python2中没有
 8 import enum
 9 from datetime import datetime
10 import random
11
12 HOSTNAME = '127.0.0.1'
13 PORT = '3306'
14 DATABASE = 'first_sqlalchemy'
15 USERNAME = 'root'
16 PASSWORD = 'root'
17
18 # dialect+driver://username:password@host:port/database
19 DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8mb4".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)
20
21 engine = create_engine(DB_URI)
22
23 Base = declarative_base(engine)
24
25 session = sessionmaker(engine)()
26
27 class User(Base):
28     __tablename__ = 'user'
29     id = Column(Integer, primary_key=True, autoincrement=True)
30     username = Column(String(50),nullable=False)
31
32
33 class Article(Base):
34     __tablename__ = 'article'
35     id = Column(Integer, primary_key=True, autoincrement=True)
36     title = Column(String(50), nullable=False)
37     create_time = Column(DateTime,nullable=False,default=datetime.now)
38     uid = Column(Integer,ForeignKey("user.id"))
39
40     author = relationship("User",backref=backref("articles", order_by=create_time.desc()))
41
42     __mapper_args__ = {
43         "order_by": create_time.desc()
44     }
45
46     def __repr__(self):
47         return "<Article(title:%s,create_time:%s)>" % (self.title,self.create_time)
48
49
50 # Base.metadata.drop_all()
51 # Base.metadata.create_all()
52 #
53 # article1 = Article(title='title1')
54 # user = User(username='zhiliao')
55 # user.articles = [article1]
56 # session.add(user)
57 # session.commit()
58 #
59 # import time
60 # time.sleep(2)
61 #
62 # article2 = Article(title='title2')
63 # user.articles.append(article2)
64 # session.commit()
65
66 # 正序排序
67 # 倒序排序
68 # articles = session.query(Article).all()
69 # print(articles)
70
71 user = session.query(User).first()
72 print(user.articles)

转载于:https://www.cnblogs.com/chen0427/p/8783688.html

【Flask】sqlalchemy 排序相关推荐

  1. flask sqlalchemy一对多关系详解

    下面的一对多关系以作者和文章为例: 首先创建一个文章表: class Post(db.Model): id = db.Column(db.Integer(),primary_key=True) tit ...

  2. python学习之flask sqlalchemy介绍和使用 表操作增删查改

    flask sqlalchemy介绍和使用 表操作增删查改 内容详细 1 sqlalchemy介绍和快速使用 1.1 介绍 # SQLAlchemy是一个基于Python实现的ORM框架# djang ...

  3. alchemy php,Flask SQLAlchemy

    在Flask Web应用程序中使用原始SQL对数据库执行CRUD操作可能很乏味. 相反,Python工具包SQLAlchemy是一个功能强大的OR映射器,为应用程序开发人员提供了SQL的全部功能和灵活 ...

  4. Flask SQLAlchemy - 2013 Lost Connection

    Flask SQLAlchemy - 2013 Lost Connection 原因 mysql默认的连接超时时间为10s.由于路由字段没有加索引导致有时单条sql执行若超过10s,报了连接超时. 解 ...

  5. Flask – SQLAlchemy成员增加

    目录 简介 结构 展示 技术 运行 代码 创建数据库表单 views视图 home主页 添加成员addnew.html 展示页show_all 简介 结构 $ tree -I "__pyca ...

  6. mysql报错1517_请教一下 flask+sqlalchemy+mysql 连接错误问题

    在本地调试 docker-compose 调试 mysql+nginx+flask 程序,报错(2003, "Can't connect to MySQL server on '127.0. ...

  7. mysql flaskalchemy_python flask sqlalchemy 数据库mysql操作

    第一步app.py: # coding=utf-8 import urllib from flask import Flask from werkzeug.routing import BaseCon ...

  8. flask+sqlalchemy+echarts动态显示数据

    一.创建测试数据 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ---------------------------- -- Table stru ...

  9. flask sqlalchemy wtf 使用笔记

    vip用户的model vip用户的model 这边 PlatUserFace 一定要写类名写表名会报错 获取用户信息 这里需要all 才能手动的去获取此用户Face的列表 vip用户的model 关 ...

最新文章

  1. 笔记本电脑5年没清灰了_19年性价比超高的5款笔记本电脑推荐
  2. Nginx如何反向代理网站和设置虚拟主机
  3. jena dataset 增删改查
  4. objective-c 类目(Category)和延展(Extension)
  5. 告诉我们您想要什么,我们将做到:消费者驱动的合同测试消息传递
  6. matlab怎么画园与椭圆,[转载]【MATLAB】画圆和椭圆
  7. 企业全面运营管理沙盘模拟心得_企业经营沙盘模拟心得总结【精选】
  8. JavaScript 登录注册表单验证
  9. php设置excel列宽,excel列宽在哪里设置
  10. 读《消费者行为心理学》-笔记
  11. 基于深度学习下的稳定学习究竟是什么?因果学习?迁移学习?之一
  12. 大数据技术技能分析大赛——第一章 python数据分析概述
  13. 厦门商业贷款转公积金攻略
  14. 某灵JAVA互联网架构师专题/分布式/高并发/微服务
  15. 123数字黑洞-第11届蓝桥杯Scratch选拔赛真题精选
  16. JavaScript深入浅出第2课:函数是一等公民是什么意思呢?
  17. 网站命名规范大全:CSS规范便于交流
  18. To_Heart—总结——FWT(快速沃尔什变换)
  19. Echarts 地图隐藏右下角 “南海诸岛” 的方法
  20. 云服务案例分析 BB平台 Quiz5

热门文章

  1. 初学PX4之飞控算法
  2. kafka报错打开文件数过多导致kafka关闭
  3. 记录 之 tensorflow常见的数据预处理操作
  4. xhtml中的五个块元素
  5. ubuntu安装/查看已安装包的方法
  6. jmeter 取json值_Jmeter入门13 后置处理器JSON Extractor提取json的多个值
  7. mysql select查询2个表_mysql – 为SELECT查询合并2个表?
  8. 跟开涛学 SpringMVC
  9. Hibernate的拦截器和监听器 .
  10. Cocoa/iPhone App/静态库 嵌入资源文件 rtb v0.1发布