小编pum*_*azi的帖子

使用日期时间字段按日分组Django模型条目

我正在使用具有DateTimeField(auto_now_add = True)的类似文章来捕获发布日期(pub_date).这看起来类似于以下内容:

class Article(models.Model):
    text = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

我想做一个查询,计算每天添加多少篇文章帖子或条目.换句话说,我想查询条目并按日分组(最后是月,小时,秒等).这看起来类似于SQLite shell中的以下内容:

select pub_date, count(id) from "myapp_article"
where id = 1
group by strftime("%d", pub_date)
;
Run Code Online (Sandbox Code Playgroud)

返回的内容如下:

2012-03-07 18:08:57.456761|5
2012-03-08 18:08:57.456761|9
2012-03-09 18:08:57.456761|1
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何从Django QuerySet获得该结果.我知道如何使用itertools.groupby获得类似的结果,但在这种情况下这是不可能的(下面的解释).

此查询的最终结果将用于显示每天帖子数的图表中.我正在尝试使用Django Chartit包来实现这一目标.Chartit对数据源(DataPool)施加约束.源必须是Model,Manager或QuerySet,因此就我所知,使用itertools.groupby不是一个选项.

所以问题是...... 如何在白天对条目进行分组或聚合,最终得到QuerySet对象?

django django-models django-aggregation

9
推荐指数
1
解决办法
6586
查看次数

创建gtk.Window的屏幕截图

出于测试和文档目的,我想创建一个gtk.Window对象的屏幕截图.我正在关注一个基本的pygtk样本.我修改的示例如下所示:

import gtk

def main():
    button = gtk.Button("Hello")
    scroll_win = gtk.ScrolledWindow()
    scroll_win.add(button)
    win = gtk.Window(gtk.WINDOW_TOPLEVEL)
    win.add(scroll_win)
    win.show_all()

    if win.is_drawable() is not True:
        raise RuntimeError("Not drawable?")

    width, height = win.get_size()
    pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8,
                            width, height)
    screenshot = pixbuf.get_from_drawable(win, win.get_colormap(),
                                          0, 0, 0, 0, width, height)
    screenshot.save('screenshot.png', 'png')

if __name__ == '__main__':
    main()
    gtk.main()
Run Code Online (Sandbox Code Playgroud)

调用get_from_drawable方法时,我最终会出错.

TypeError: Gdk.Pixbuf.get_from_drawable() argument 1 must be gtk.gdk.Drawable, not gtk.Window
Run Code Online (Sandbox Code Playgroud)

显然,我合并到基本示例中的屏幕截图示例是使用从gtk.gdk.Drawable继承的gtk.gdk.Window.

我的问题:

  • 还有另一种方法可以让Pixbuf对象捕获窗口吗?
  • 我可以创建gtk.Window gtk.gdk.Window或在gtk.Window中找到gtk.gdk.Window功能吗?

python gtk pygtk screenshot

6
推荐指数
1
解决办法
3914
查看次数

Before_request多个蓝图

这是我的情况:

假设我有2个蓝图before_request方法:

mod = Blueprint('posts', __name__, url_prefix='/posts')

@mod.before_request
def before_request():
  #some code that uses SQLAlchemy here 
  pass
Run Code Online (Sandbox Code Playgroud)

现在,我不想在第二个蓝图中重复此方法中的逻辑。

我怎样才能做到这一点?

PS:我是Python的新手,所以我可能缺少明显的东西。谢谢。

python flask

5
推荐指数
1
解决办法
2011
查看次数

用argparse创建相互包含的位置参数

我正在尝试使用Python的argparse模块构建命令行界面。我想要两个位置参数,其中一个参数依赖于另一个参数(相互包含)。这是我想要的:

prog [arg1 [arg2]]
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的内容:

prog [arg1] [arg2]
Run Code Online (Sandbox Code Playgroud)

产生于:

parser = argparse.ArgumentParser()
parser.add_argument('arg1', nargs='?')
parser.add_argument('arg2', nargs='?')
Run Code Online (Sandbox Code Playgroud)

我如何才能从那里开始拥有相互包容的arg2?

python argparse

5
推荐指数
1
解决办法
2751
查看次数