Python编程:Django自定义模板标签

简介: Python编程:Django自定义模板标签

在APPchart中新建一个文件夹,和两个文件,结构如下:

templatetags/
  __init__.py
  mytags.py

mytags.py文件中自定义函数

from django import template
register = template.Library()
@register.filter
def startswith(value, start):
  """
  实现python中的 startswith py2中多一个unicode
  """
    if isinstance(value, (str, unicode)):
        return value.startswith(start)
    else:
        return False

settings.py中添加注册

'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            # 以下是新加的内容
            'libraries': {
                "mytags": "chart.templatetags.mytags",
            },
        },

html文件中使用

{% load mytags %}
{% if field|startswith:"http" %}
     <td><a href="{{ field }}">{{ field }}</a></td>
 {% else %}
     <td>{{ field }}</td>
 {% endif %}

说明:

{% if field|startswith:"http" %}

相当于:

startswith(field, "http")

分别是第一个和第二个参数

注意:使用模板语言的时候|两侧不要有空格!!!

参考

  1. Django之模板语言
  2. Django: is not a registered tag library.
  3. https://stackoverflow.com/questions/40686201/django-1-10-1-my-templatetag-is-not-a-registered-tag-library-must-be-one-of/42881074
  4. https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/
相关文章
|
Python
Python编程:Django自定义模板标签
Python编程:Django自定义模板标签
|
2月前
|
监控 安全 应用服务中间件
python中Django入门(四)
python中Django入门(四)
31 0
|
1月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
6天前
|
前端开发 UED Python
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
|
6天前
|
中间件 Python
中间件应用Django Middleware(Python)
【5月更文挑战第3天】中间件应用Django Middleware(Python)
35 6
中间件应用Django Middleware(Python)
|
16天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之阿里函数计算中在自定义环境下用debian10运行django,用官方层的python3.9,配置好环境变量后发现自定义层的django找不到了如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
22 3
|
18天前
|
存储 搜索推荐 开发者
django-haystack,具有全文搜索功能的 Python 库!
django-haystack,具有全文搜索功能的 Python 库!
25 0
|
19天前
|
SQL 缓存 数据库
在Python Web开发过程中:数据库与缓存,如何使用ORM(例如Django ORM)执行查询并优化查询性能?
在Python Web开发中,使用ORM如Django ORM能简化数据库操作。为了优化查询性能,可以:选择合适索引,避免N+1查询(利用`select_related`和`prefetch_related`),批量读取数据(`iterator()`),使用缓存,分页查询,适时使用原生SQL,优化数据库配置,定期优化数据库并监控性能。这些策略能提升响应速度和用户体验。
18 0
|
24天前
|
安全 前端开发 中间件
Python面试题:Django Web框架基础与进阶
【4月更文挑战第17天】本文详细梳理了Django面试中常考的基础和进阶问题,包括MTV架构、ORM、数据库迁移、视图模板、中间件、信号、表单验证、用户认证授权等,并指出易错点及规避策略。提供代码示例展示模型和视图的实现,助力开发者在面试中脱颖而出。
43 12