用于烧瓶项目的壁虎自定义小部件
Flask-Geckoboard的Python项目详细描述
一个由网络分析、CRM、支持、基础设施、项目管理和销售部门提供指标的实时状态板。等等,它可以连接到几乎任何数量
数据源。这个flask_u插件提供视图装饰器来帮助创建自定义小部件。_壁虎:http://www.geckoboard.com/
。_烧瓶:http://flask.pocoo.org/
只需将"烧瓶壁虎"包放在python路径上的某个地方即可。
在烧瓶配置中设置"geckoboard_api_key"。
如果不设置api密钥,任何人都可以通过访问小部件url来查看数据。
encryption
==
geckoboard encryption允许在数据发送到geckoboard的
服务器之前对数据进行加密。输入加载壁虎
时用于加密数据的密码后,数据将在浏览器中解密。
若要使用加密,请先在烧瓶配置中设置"壁虎密码"。
使用decorator参数为每个小部件启用加密::
from flask import flask
from flask壁虎import geckoboard
geckoboard=geckoboard(app)
@app.route('/user count')
@geckoboard.number(encrypted=true)
def user_count(请求):
return user.objects.count()
creating custom widgets
=====
可用的自定义widgets在geckoboard支持
部分的"geckoboard api"下进行了描述。从flask
项目的角度来看,自定义小部件只是一个视图。flask geckoboard
应用程序提供了视图装饰器,它们为不同的小部件提供了正确的响应
。
首先创建一个视图,使用
flask geckoboard decorator::
from date time导入日期、时间,日期时间
从烧瓶进口烧瓶
从烧瓶进口壁虎
geckoboard=壁虎(app)
@app.route('/comment count')
@geckoboard.number
def comment\u count():
午夜=date time.combine(date.today(),time.min)
返回comment.objects.filter(submit_u date_u gte=midnight).count()
您可以在decorator
定义中传递它们:
@app.route('/gecko/comment/count absolute')
@geckoboard.number(absolute='true')
def comment\u count(request):
midnight=datetime.combine(date.today(),time.min)
返回comment.objects.filter(提交日期=午夜)。count()
在geckoboard中创建自定义小部件时,请输入以下信息:
encryption
enable if the field is encrypted(请参阅上面的说明)。
url data feed
view url。在上面的示例中,这可能类似于
``http://hostname/geckoboard/comment-account/``.
``geckoboard-api-key``设置的内容,如果您设置了它的话。
widget-type
*custom*
要么是*xml*要么是*json*。如果未指定格式,则装饰器将
自动检测并输出正确的格式,如果未启用此功能,则装饰器将默认为xml(默认情况下,格式不会附加
壁虎不再是一个参数)
请求类型
要么是*获取*要么是*发布*。视图装饰器接受这两者。
次要stat*小部件。
可选的
*previous*参数是测量数量的前一个值,
可选的参数*prefix*是geckoboard小部件中使用的前缀。
如果只有一个参数,则不需要将其返回元组。
例如,要呈现显示用户和与上周的差异:
from datetime import datetime,timedelta
@geckoboard.number
def user\u count(请求):
last\u week=datetime.now()-timedelta(weeks=1)
users=user.objects
last\u week\u users=users.filter(加入日期=last\u week)
return(users.count(),上一周用户数。count())
@geckoboard.number
def users_count_带前缀(请求):
last_week=datetime.now()-timedelta(weeks=1)
users=user.objects
last_week=users.filter(加入日期=last_week)
return(users.count(),last_week_users.count(),'$')
``rag``
----
呈现一个*rag column&numbers*或*rag numbers*小部件。
修饰视图必须返回一个包含三个元组的元组*(值,
[文本])。*value*参数是以红色、琥珀色
和绿色(按顺序)显示的数字。可选的*文本*参数将
显示在仪表板中相应值的旁边。
timedelta
@geckoboard.rag
def comments(请求):
开始时间=date time.now()-timedelta(小时=24)
注释=comment.objects.filter(提交日期=开始时间)
总计数=comments.count()
已批准计数=comments.filter(
flags\u flag=commentflag.mediator\u approval.count()
deleted\u count=comment.objects.filter(
flags\u flag=commentflag.mediator\u deletion.count()
pending\u count=total\u count-approved\u count-deleted\u count
返回(
(删除计数,"删除评论"),
(挂起计数,"挂起评论"),
(批准计数,"批准评论"),
)
``text`
----
呈现一个*文本*小部件。
修饰视图必须返回一个元组列表*(消息,[类型])*.
消息*参数是将在小部件中显示的字符串。
类型*参数是可选的,告诉geckoboard如何注释消息。对于信息性消息,使用"text-info";对于警告,使用"text-warn";对于纯文本,使用"text-none"(默认值)。如果只有一条普通消息,您只需返回它,而不必将其包含在列表和元组中。
例如,要呈现一个小部件,显示最新的壁虎twitter
更新,使用mike verdone的'twitter library':
import twitter
@geckoboard.text
def twitter状态(请求):
twitter=twitter.api()
updates=twitter.getusertimeline('geckoboard')
return[(u.text,文本无)用于更新中的u]
…_` Twitter库:http://pypi.python.org/pypi/twitter*. 可选的*color*参数是一个字符串"`'rrggbb[tt]``
表示红色、绿色、蓝色和可选的透明度。
例如,要呈现一个小部件,显示普通用户、员工用户和超级用户的数量:
@geckoboard.pie\u chart
def用户类型(请求):
users=user.objects.filter(is_active=true)
total_count=users.count()
superuser_count=users.filter(is_superuser=true).count()
staff_count=users.filter(is_staff=true,
is_superuser=false).count()
normal_count=total_count=superuser_count-staff_count
返回[
(normal_count,"normal users","ff8800"),
(staff_count,"staff","00ff88"),
(超级用户计数,"超级用户","8800ff"),
]
``折线图`
----
呈现一个*折线图*小部件。
修饰视图必须返回一个元组*(值,x轴,y轴,
[颜色])。*values*参数是一个数据点列表。
*x轴*参数是一个标签字符串或字符串列表,将
放置在x轴上。*y轴*参数对
y轴的作用类似。如果有多个轴标签,则它们沿轴均匀放置。可选的*color*参数是一个字符串
``rrggbb[tt]``表示红色、绿色、蓝色和可选的
透明度。
timedelta
@geckoboard.line\u chart
def comment\u trend(request):
since=date.today()-timedelta(days=29)
days=dict(since+timedelta(days=d),0)
29))
注释=注释.objects.filter(submit_u date_u gte=since)
注释中的注释:
天[comment.submit_u date.date()]+=1
返回(
天.values(),
[天[i]范围(0,29,7)],
"注释",
)
``geck-o-meter`
————————————————————————————————————————————————————————————————————————————————————————————————————————*value*
参数表示当前值。*min*和*max*参数
分别表示最小值和最大值。它们要么是
值,要么是元组*(值,文本)*。如果使用,*text*参数将
显示在最小值或最大值旁边。
timedelta
@geckoboard.geck_o_meter
def login_count(请求):
since=datetime.now()-timedelta(hours=24)
users=user.objects.filter(is_active=true)
total_count=users.count()
logged_count=users.filter(last_u login_u gt=since).count()
返回(登录计数,0,总计数)
``漏斗`
----
呈现一个*漏斗*小部件。
修饰视图必须返回一个字典,其中至少有一个*项*
键。呈现一个漏斗,显示已验证用户的细分
与匿名用户的细分::
@geckoboard.funnel
def user_细分(请求):
all_users=user.objects
active_users=all_users.filter(is_active=true)
staff_users=所有用户.filter(is_staff=true)
super_users=all_users.filter(is_superuser=true)
返回{
"items":[
(all_users.count(),'all users'),
(active_users.count(),'active users'),
(staff_users.count(),'staff users'),
(super_users.count(),'super users'),
],
"type":"standard"(标准),"default"(默认),"reverse"(反转)更改颜色的方向。
"percentage":"show"(显示),"default"(默认),"hide"(隐藏)隐藏百分比值。
"sort"(排序):false,"default",` true"对值进行排序
降序。
}
``bullet``
——
呈现一个*bullet*小部件。
修饰视图必须返回一个字典,其中至少包含键*label*、
*轴*点*、*当前*和*比较*。要呈现壁虎自己的示例,请访问http://support.geckoboard.com/entries/274940自定义图表小部件类型定义:
@geckoboard.bullet
def geckoboard-bullet示例(请求):
return={
"label":"Revenue 2011 YTD",
"轴点":[0,200,400,600,800,1000],
"当前":500,
"比较":600,
"子标签":"千美元",
"红色":[0,400],
"琥珀色":[401,700],
"绿色":[701,1000],
"投影":[100900],
"自动缩放":false,
}
…_`壁虎API`:http://geckoboard.zendesk.com/forums/207979壁虎API
==
>版本0.2.1
----
*在Bullet Widget中选择"比较"字段。
>版本0.2.0
----
*在Bullet Widget中修复错误。
*允许Bullet Widget返回多个Bullet Widget。
0.1.0版
----
*第一个版本,与Django-Geckoboard分开。
_ django-analytic:http://pypi.python.org/pypi/django-geckoboard
数据源。这个flask_u插件提供视图装饰器来帮助创建自定义小部件。_壁虎:http://www.geckoboard.com/
。_烧瓶:http://flask.pocoo.org/
只需将"烧瓶壁虎"包放在python路径上的某个地方即可。
在烧瓶配置中设置"geckoboard_api_key"。
如果不设置api密钥,任何人都可以通过访问小部件url来查看数据。
encryption
==
geckoboard encryption允许在数据发送到geckoboard的
服务器之前对数据进行加密。输入加载壁虎
时用于加密数据的密码后,数据将在浏览器中解密。
若要使用加密,请先在烧瓶配置中设置"壁虎密码"。
使用decorator参数为每个小部件启用加密::
from flask import flask
from flask壁虎import geckoboard
@app.route('/user count')
@geckoboard.number(encrypted=true)
def user_count(请求):
return user.objects.count()
creating custom widgets
=====
可用的自定义widgets在geckoboard支持
部分的"geckoboard api"下进行了描述。从flask
项目的角度来看,自定义小部件只是一个视图。flask geckoboard
应用程序提供了视图装饰器,它们为不同的小部件提供了正确的响应
。
首先创建一个视图,使用
flask geckoboard decorator::
from date time导入日期、时间,日期时间
从烧瓶进口烧瓶
从烧瓶进口壁虎
@app.route('/comment count')
@geckoboard.number
def comment\u count():
午夜=date time.combine(date.today(),time.min)
返回comment.objects.filter(submit_u date_u gte=midnight).count()
您可以在decorator
定义中传递它们:
@app.route('/gecko/comment/count absolute')
@geckoboard.number(absolute='true')
def comment\u count(request):
midnight=datetime.combine(date.today(),time.min)
返回comment.objects.filter(提交日期=午夜)。count()
在geckoboard中创建自定义小部件时,请输入以下信息:
encryption
enable if the field is encrypted(请参阅上面的说明)。
url data feed
view url。在上面的示例中,这可能类似于
``http://hostname/geckoboard/comment-account/``.
widget-type
*custom*
自动检测并输出正确的格式,如果未启用此功能,则装饰器将默认为xml(默认情况下,格式不会附加
壁虎不再是一个参数)
请求类型
要么是*获取*要么是*发布*。视图装饰器接受这两者。
次要stat*小部件。
可选的
*previous*参数是测量数量的前一个值,
可选的参数*prefix*是geckoboard小部件中使用的前缀。
如果只有一个参数,则不需要将其返回元组。
例如,要呈现显示用户和与上周的差异:
from datetime import datetime,timedelta
@geckoboard.number
def user\u count(请求):
last\u week=datetime.now()-timedelta(weeks=1)
users=user.objects
last\u week\u users=users.filter(加入日期=last\u week)
return(users.count(),上一周用户数。count())
@geckoboard.number
def users_count_带前缀(请求):
last_week=datetime.now()-timedelta(weeks=1)
users=user.objects
last_week=users.filter(加入日期=last_week)
return(users.count(),last_week_users.count(),'$')
``rag``
----
呈现一个*rag column&numbers*或*rag numbers*小部件。
修饰视图必须返回一个包含三个元组的元组*(值,
[文本])。*value*参数是以红色、琥珀色
和绿色(按顺序)显示的数字。可选的*文本*参数将
显示在仪表板中相应值的旁边。
timedelta
@geckoboard.rag
def comments(请求):
开始时间=date time.now()-timedelta(小时=24)
注释=comment.objects.filter(提交日期=开始时间)
总计数=comments.count()
已批准计数=comments.filter(
flags\u flag=commentflag.mediator\u approval.count()
deleted\u count=comment.objects.filter(
flags\u flag=commentflag.mediator\u deletion.count()
pending\u count=total\u count-approved\u count-deleted\u count
返回(
(删除计数,"删除评论"),
(挂起计数,"挂起评论"),
(批准计数,"批准评论"),
)
``text`
----
呈现一个*文本*小部件。
修饰视图必须返回一个元组列表*(消息,[类型])*.
消息*参数是将在小部件中显示的字符串。
类型*参数是可选的,告诉geckoboard如何注释消息。对于信息性消息,使用"text-info";对于警告,使用"text-warn";对于纯文本,使用"text-none"(默认值)。如果只有一条普通消息,您只需返回它,而不必将其包含在列表和元组中。
例如,要呈现一个小部件,显示最新的壁虎twitter
更新,使用mike verdone的'twitter library':
import twitter
@geckoboard.text
def twitter状态(请求):
twitter=twitter.api()
updates=twitter.getusertimeline('geckoboard')
return[(u.text,文本无)用于更新中的u]
…_` Twitter库:http://pypi.python.org/pypi/twitter*. 可选的*color*参数是一个字符串"`'rrggbb[tt]``
表示红色、绿色、蓝色和可选的透明度。
例如,要呈现一个小部件,显示普通用户、员工用户和超级用户的数量:
@geckoboard.pie\u chart
def用户类型(请求):
users=user.objects.filter(is_active=true)
total_count=users.count()
superuser_count=users.filter(is_superuser=true).count()
staff_count=users.filter(is_staff=true,
is_superuser=false).count()
normal_count=total_count=superuser_count-staff_count
返回[
(normal_count,"normal users","ff8800"),
(staff_count,"staff","00ff88"),
(超级用户计数,"超级用户","8800ff"),
]
``折线图`
----
呈现一个*折线图*小部件。
修饰视图必须返回一个元组*(值,x轴,y轴,
[颜色])。*values*参数是一个数据点列表。
*x轴*参数是一个标签字符串或字符串列表,将
放置在x轴上。*y轴*参数对
y轴的作用类似。如果有多个轴标签,则它们沿轴均匀放置。可选的*color*参数是一个字符串
``rrggbb[tt]``表示红色、绿色、蓝色和可选的
透明度。
timedelta
@geckoboard.line\u chart
def comment\u trend(request):
since=date.today()-timedelta(days=29)
days=dict(since+timedelta(days=d),0)
29))
注释=注释.objects.filter(submit_u date_u gte=since)
注释中的注释:
天[comment.submit_u date.date()]+=1
返回(
天.values(),
[天[i]范围(0,29,7)],
"注释",
)
``geck-o-meter`
————————————————————————————————————————————————————————————————————————————————————————————————————————*value*
参数表示当前值。*min*和*max*参数
分别表示最小值和最大值。它们要么是
值,要么是元组*(值,文本)*。如果使用,*text*参数将
显示在最小值或最大值旁边。
timedelta
@geckoboard.geck_o_meter
def login_count(请求):
since=datetime.now()-timedelta(hours=24)
users=user.objects.filter(is_active=true)
total_count=users.count()
logged_count=users.filter(last_u login_u gt=since).count()
返回(登录计数,0,总计数)
``漏斗`
----
呈现一个*漏斗*小部件。
修饰视图必须返回一个字典,其中至少有一个*项*
键。呈现一个漏斗,显示已验证用户的细分
与匿名用户的细分::
@geckoboard.funnel
def user_细分(请求):
all_users=user.objects
active_users=all_users.filter(is_active=true)
staff_users=所有用户.filter(is_staff=true)
super_users=all_users.filter(is_superuser=true)
返回{
"items":[
(all_users.count(),'all users'),
(active_users.count(),'active users'),
(staff_users.count(),'staff users'),
(super_users.count(),'super users'),
],
"type":"standard"(标准),"default"(默认),"reverse"(反转)更改颜色的方向。
"percentage":"show"(显示),"default"(默认),"hide"(隐藏)隐藏百分比值。
"sort"(排序):false,"default",` true"对值进行排序
降序。
}
``bullet``
——
呈现一个*bullet*小部件。
修饰视图必须返回一个字典,其中至少包含键*label*、
*轴*点*、*当前*和*比较*。要呈现壁虎自己的示例,请访问http://support.geckoboard.com/entries/274940自定义图表小部件类型定义:
@geckoboard.bullet
def geckoboard-bullet示例(请求):
return={
"label":"Revenue 2011 YTD",
"轴点":[0,200,400,600,800,1000],
"当前":500,
"比较":600,
"子标签":"千美元",
"红色":[0,400],
"琥珀色":[401,700],
"绿色":[701,1000],
"投影":[100900],
"自动缩放":false,
}
…_`壁虎API`:http://geckoboard.zendesk.com/forums/207979壁虎API
>版本0.2.1
----
*在Bullet Widget中选择"比较"字段。
>版本0.2.0
----
*在Bullet Widget中修复错误。
*允许Bullet Widget返回多个Bullet Widget。
0.1.0版
----
*第一个版本,与Django-Geckoboard分开。
_ django-analytic:http://pypi.python.org/pypi/django-geckoboard