首页 > 其他 > 详细

【Flask】query可用参数

时间:2018-03-23 23:53:05      阅读:357      评论:0      收藏:0      [点我收藏+]

### query可用参数:
1. 模型对象。指定查找这个模型中所有的对象。
2. 模型中的属性。可以指定只查找某个模型的其中几个属性。
3. 聚合函数。
* func.count:统计行的数量。
* func.avg:求平均值。
* func.max:求最大值。
* func.min:求最小值。
* func.sum:求和。
`func`上,其实没有任何聚合函数。但是因为他底层做了一些魔术,只要mysql中有的聚合函数,都可以通过func调用。

 

 1 # coding:utf-8
 2 # Author: liangjun.chen
 3 
 4 from datetime import date
 5 from datetime import datetime
 6 from datetime import time
 7 from random import random
 8 from sqlalchemy import create_engine, Column, Integer, String, Float, func
 9 
10 from sqlalchemy.ext.declarative import declarative_base
11 from sqlalchemy.orm import sessionmaker
12 
13 HOSTNAME = 127.0.0.1
14 PORT = 3306
15 DATABASE = sqlalchemy_first
16 USERNAME = root
17 PASSWORD = 123456
18 
19 DB_URI = mysql+pymysql://{username}:{password}@{host}:{port}/{dbname}?charset=utf8.format(
20         username=USERNAME, password=PASSWORD, host=HOSTNAME, port=PORT, dbname=DATABASE
21 )
22 engine = create_engine(DB_URI)
23 Base = declarative_base(engine)
24 Session = sessionmaker(engine)
25 session = Session()
26 
27 
28 class Article(Base):
29     __tablename__ = article
30     id = Column(Integer, primary_key=True, autoincrement=True)
31     title = Column(String(50), nullable=False)
32     price = Column(Float, nullable=False)
33 
34     def __repr__(self):
35         return "Article<title: {}, price: {}>".format(self.title, self.price)
36 
37 Base.metadata.drop_all()
38 Base.metadata.create_all()
39 for _ in xrange(6):
40     article = Article(title=title{}.format(_), price=random()*100)
41     session.add(article)
42 session.commit()
43 
44 # 查询结果为结果对象列表
45 articles = session.query(Article).all()
46 for arts in articles:
47     print arts
48 
49 # 查询结果为元组
50 articles = session.query(Article.title, Article.price).all()
51 print articles
52 
53 # 聚合函数
54 print session.query(func.count(Article.id)).all()
55 print session.query(func.avg(Article.price)).all()
56 print session.query(func.max(Article.price)).all()
57 print session.query(func.min(Article.price)).all()
58 print session.query(func.sum(Article.price)).all()

 

【Flask】query可用参数

原文:https://www.cnblogs.com/chen0427/p/8635551.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!