一个简单的django templatetag(compute_tag_cloud)帮助创建标记云。
django-nuages-tag的Python项目详细描述
这是什么?
一个简单的django templatetag(命名为compute_tag_cloud)来帮助 创建标记云。
微型教程
在django项目中安装应用程序
这应该简单到
pip install django-nuages-tag
并将“django nuages”添加到INSTALLED_APPS设置中。
示例用法
1.源数据
假设我们有一个我最喜欢的工具上下文变量定义如下 这个:
my_favourite_tools = [{'name': 'Python', 'interest': 30}, {'name': 'Django', 'interest': 70}, {'name': 'Ruby', 'interest': 6}]
注意:示例显示了一个简单的列表,但是这也适用于django 查询集。
2.计算标记云
我们现在可以做到:
{% load django_nuages_tag %} {% compute_tag_cloud my_favourite_tools interest font_size 10 100 lin %}
计算标记云将向每个元素添加一个font_size属性 在my_favourite_tools中,包含在10到100之间,并且是 代表interest的值。最后一个参数 (lin)要求使用线性公式计算此标记云。 另一种选择是使用对数公式(使用log 参数)。您应该测试这两个选项,但是log可能会给出 如果你想要的值有很大的变化,你会得到更好的结果 计算。注意:0和负值将计算为0(使用两个公式)。
我们的源数据现在看起来像:
my_favourite_tools = [{'name': 'Python', 'interest': 30, 'font_size': 43.75}, {'name': 'Django', 'interest': 70, 'font_size': 100}, {'name': 'Ruby', 'interest': 6, 'font_size': 10}]
3.渲染标记云
这可以通过for标记和基本的html/css轻松完成。 例如:
{% for tool in my_favourite_tools %} <span style="font-size: {{ tool.font_size }}px;"> {{ tool.name }} </span> {% endfor %}
注释
compute_tag_cloud可以连续调用多次 生成多个值。例如,我们可以计算字体大小 (介于10和55之间),但也包括边距(介于5和28之间)和 文本的不透明度(介于0.7和1之间),类似于:
{% load django_nuages_tag %} {% compute_tag_cloud my_favourite_tools interest font_size 10 55 lin %} {% compute_tag_cloud my_favourite_tools interest margin 5 28 lin %} {% compute_tag_cloud my_favourite_tools interest opacity 0.7 1 lin %} {% for tool in my_favourite_tools %} <span style="font-size: {{ tool.font_size }}px; margin: {{ tool.margin }}px; opacity: {{ tool.opacity }}">{{ tool.name }}</span> {% endfor %}
参数counter可以是属性、要调用的方法或字典键。