在你的站点中启用特提斯小控件的应用程序。

django-tethys_gizmos的Python项目详细描述


gizmo是构建块,可用于为web应用程序创建漂亮的交互控件。使用小发明, 开发人员可以使用最少的编码将日期选择器、绘图和映射添加到模板中。

安装

特提斯小发明可以通过pip或下载源安装。通过PIP或Easy_安装:

pip install django-tethys_gizmos

通过下载安装:

git clone https://github.com/CI-WATER/django-tethys_gizmos.git
cd django-tethys_gizmos
python setup.py install

django配置

  1. 将“特提斯小发明”添加到已安装的应用程序设置中,如下所示:

    INSTALLED_APPS = (
        ...
        'tethys_gizmos',
    )
    
  2. 将上下文处理器添加到设置。例如:

    TEMPLATE_CONTEXT_PROCESSORS = ('django.contrib.auth.context_processors.auth',
                                   'django.core.context_processors.debug',
                                   'django.core.context_processors.i18n',
                                   'django.core.context_processors.media',
                                   'django.core.context_processors.static',
                                   'django.core.context_processors.tz',
                                   'tethys_gizmos.context_processors.tethys_gizmos_context')
    
  3. 将tethys gizmos urlconf包含到带有“gizmos”名称空间的项目url.py中:

    url(r'^gizmos/', include('tethys_gizmos.urls', namespace='gizmos'))
    

四。特提斯小发明广泛使用twitter引导和jquery。这些库必须包含在所有模板中 使用小发明的。由于这两个库的普遍使用,我们让开发人员决定如何 提供这些依赖项。建议您将它们包含在“page.html”(见下文)或其他基础中 网站中所有页面使用的模板。

5个。特提斯小控件包括所有可用小控件的展示,包括实时演示和代码示例。获取此页 工作时,您需要在基本“templates”目录中创建一个名为“page.html”的模板,该模板包含块 称为“样式”、“正文标记”、“主要内容”和“脚本”。还包括bootstrap和jquery依赖项。你的 “page.html”应该是这样的:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
        {% block styles %}
        {% endblock %}
    </head>
    <body {% block bodytag %}{% endblock %}>
        {% block primary_content %}
        {% endblock %}

        {% block scripts %}
        {% endblock %}
    </body>
</html>

注意

如果您的jquery和bootstrap javascript脚本包含在上面描述的文档头部,那么gizmo工作得最好。

快速启动

“最小编码”是什么意思?看看下面的例子。假设你想包括一个日期 使用gizmo在模板中选取器。首先,创建一个包含所有配置选项的字典 对于模板的视图/控制器中的日期选择器(稍后将详细介绍),并将其添加到上下文中:

def my_view(request):
    date_picker_options = {'display_text': 'Date',
                     'name': 'date1',
                     'autoclose': True,
                     'format': 'MM d, yyyy',
                     'start_date': '2/15/2014',
                     'start_view': 'decade',
                     'today_button': True,
                     'initial': 'February 15, 2014'}

    context = {'date_picker_options': date_picker_options}

    return render(request, 'path/to/my/template.html', context)

接下来,打开要向其中添加gizmo的模板并加载tethys\u gizmo库。一定要 在任何gizmo出现之前,在模板顶部的附近执行此操作。这只需要 对每个使用小控件的模板执行一次:

{% load tethys_gizmos %}

现在,使用gizmo标记将日期选择器插入到模板中的任何位置。传递gizmo的名称 以及作为参数从视图传递给模板的选项字典:

{% gizmo date_picker date_picker_options %}

最后,在模板的末尾–在所有的gizmo标记之后–插入gizmo依赖项 标签。对于每个使用gizmo的模板,只需要执行一次。

{% gizmo_dependencies %}

注意

在特提斯应用程序开发中使用特提斯Gizmo时,不必在模板中包含gizmo_dependencies标记。依赖项已包含在app_base模板中。

您的模板可能看起来像这样:

{% load tethys_gizmos %}
<DOCTYPE html>
<html>
  <head>
    ...
  </head>
  <body>
    ...
    {% gizmo date_picker date_picker_options %}
    ...
    {% gizmo_dependencies %}
  </body>
</html>

工作原理

gizmo由html、javascript和css组成。呈现模板时,每个gizmo 标记被呈现gizmo所需的html替换。所有小控件都接受python字典 具有配置gizmo的选项。每个gizmo的选项都记录在本页中。

javascript和css依赖项加载到模板中gizmo_依赖项的位置 标签。注意gizmo_dependencies标记必须在所有gizmo标记之后调用 否则某些依赖项可能无法正确加载。

可选地,gizmo_依赖项可以使用jscss调用标记,以便仅加载 分别是javascript依赖项还是css依赖项。毕竟必须调用此标记的规则 gizmo标记仍然适用。必须调用两次gizmo_依赖项 使用此功能时。

{% gizmo_dependencies js %}
{% gizmo_dependencies css %}

必须在模板顶部加载tethys\u gizmo库,以提供gizmogizmo_dependencies模板标记。

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

推荐PyPI第三方库


热门话题
java Apache Flink外部Jar   创建和强制转换对象数组时发生java错误   Java,添加数组   具有相同包结构和类的java JAR   java Jenkins未能构建Maven项目   java为什么一个forloop比另一个更快,尽管它们做的“一样”?   servlets在将“/”站点迁移到Java EE包时处理contextpath引用   无法解析java MavReplugin:2.21或其某个依赖项   泛型如何编写比较器来泛化Java中的两种类型的对象?   java Android Emulator未在netbeans上加载   多线程Java使用线程对数组中的数字求和:在同步块中使用新变量作为锁:差异   java如何在JSP/servlet中设置<input>标记的值?