示例
模型定义和Django、SQLAlchemy类似
连接到数据库并创建表格和添加数据
查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# A simple query selecting a user.
User
.
get
(
User
.
username
==
'charles'
)
# Get tweets created by one of several users. The "<<" operator
# corresponds to the SQL "IN" operator.
usernames
=
[
'charlie'
,
'huey'
,
'mickey'
]
users
=
User
.
select
(
)
.
where
(
User
.
username
<<
usernames
)
tweets
=
Tweet
.
select
(
)
.
where
(
Tweet
.
user
<<
users
)
# We could accomplish the same using a JOIN:
tweets
=
(
Tweet
.
select
(
)
.
join
(
User
)
.
where
(
User
.
username
<<
usernames
)
)
# How many tweets were published today?
tweets_today
=
(
Tweet
.
select
(
)
.
where
(
(
Tweet
.
created_date
>=
datetime
.
date
.
today
(
)
)
&
(
Tweet
.
is_published
==
True
)
)
.
count
(
)
)
# Paginate the user table and show me page 3 (users 41-60).
User
.
select
(
)
.
order_by
(
User
.
username
)
.
paginate
(
3
,
20
)
# Order users by the number of tweets they've created:
tweet_ct
=
fn
.
Count
(
Tweet
.
id
)
users
=
(
User
.
select
(
User
,
tweet_ct
.
alias
(
'ct'
)
)
.
join
(
Tweet
,
JOIN
.
LEFT_OUTER
)
.
group_by
(
User
)
.
order_by
(
tweet_ct
.
desc
(
)
)
)
# Do an atomic update
Counter
.
update
(
count
=
Counter
.
count
+
1
)
.
where
(
Counter
.
url
==
request
.
url
)
|