2013-04-16 31 views
1

我有一張表,postssqlalchemy +燒瓶,逐日獲得所有帖子

其中包括:

id = db.Column(db.Integer, primary_key=True) 
title = db.Column(db.String(200)) 
content = db.Column(db.Text()) 
time = db.Column(db.DateTime) 

這就是我想實現,當我瀏覽到這個網址。

/allposts

posts on 01-01-2013 
- post 1 
- post 2 
- post 3 

posts on 01-02-2013 
- post 4 
- post 5 
- post 6 

等。

我嘗試過羣組,但是我無法實現上面解釋的內容。

我正在使用sqlalchemy和燒瓶python框架。

同時提供原始和sqlalhemy查詢會好得多,所以我可以在這裏包圍我的頭一些概念。

謝謝!

+0

你能告訴我們整個模型的定義是什麼?我假設'時間'是'日期時間'? – DazWorrall

+0

@DazWorrall是的,我用模型定義更新了問題。 – static

回答

1

我不會做一個查詢,而是建立在Python端期望的分組:

# get desired posts (add your filters etc) 
posts = session.query(Post).order_by(Post.time) 

# create a dictionary, where key is the date(-only), and values are the posts of that day 
from collections import defaultdict 
grouped = defaultdict(list) 
for post in posts: 
    dat = post.time.date() 
    grouped[dat].append(post) 

# iterate over new grouped structure 
for dat, posts in sorted(grouped.items()): 
    print dat 
    for post in posts: 
     print ' ', post 
+0

非常感謝你這麼做! – static