一个简单的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可以是属性、要调用的方法或字典键。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
任务“:app:compiledBugJava”与“;”的java Android执行失败预期   cmd Java找不到主类   应用程序关闭后java还原Android回栈   无法识别Java中通过OutputStream发送到Firefox的HTML代码   Redis hmget的java超时时间   排序java如何生成按字母顺序排序集合的泛型函数   java从何处提取默认编码?   必须指定java Spring引导安全配置authenticationManager   创建目录的java单元测试代码   初始化期间的java空变量   java如何通过同一个交换机编码启用和禁用Wifi、移动数据和GPS?   java将顺序UI作业排队并在UI中显示它们   java JMS连接未连接到远程JBoss,但连接本地实例   swing Java多GUI窗口创建   包装jar的java OSGi服务   java意外字符“ï”,使用Jackson解析JSON