Django模板

Django添加前端配置文件方法

Django中,用相对路径有时候会出错,所以最好用这种方法:{%load staticfiles%}
<!DOCTYPEhtml>
{%load staticfiles%}
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src={%static 'js/jquery-1.12.4.min.js'%}></script>
        <script src={%static 'js/jquery.pagination.min.js'%}></script>
    </head>

Django跳转

# 无参数
#1、路由跳转
#return redirect('/skip/index/')

#2、namespace名称跳转
#return redirect(reverse('skip:Index')) #return redirect('skip:Index')

#3、app_name名称跳转
return redirect(reverse('skip:Index')) #return redirect('skip:Index')


# 含参跳转
#普通传参,路由中也有参数'goods/<int:id>'
#return redirect('/skip/goods/666')

#名称、kwargs传参,此时必须写reverse,路由中也有参数'goods/<int:id>'
return redirect(reverse('skip:goods',kwargs={'id':999}))

# 获取参数,路由有参数'goods/<int:id>'
def goods(request,**kwargs):
    print ('参数是:{}'.format(kwargs.get('id')))
    return HttpResponse('ok')

Html页面跳转

没参数跳转
<a href="/skip/login">跳转1:传统跳转</a>
<a href="{% url 'skip:login' %}">跳转2:反向解析跳转</a>

含参跳转,此时路由有参数'goods/<int:id>'
<a href="/skip/goods/888">普通传参</a>
<a href="{%url'skip:goods'478%}">反向解析传参</a> 参数依次向后写即可
<a href="{%url'skip:deletegoods' %}?id=**">反向解析跳转</a>,此时路由无参数'goods/'

自定义过滤器、标签

1、在子应用中添加 templatetags python文件夹
2、创建自己的过滤器文件:demo:myfilters.py
导入自定义包  from django.template import Library
实例化Library :register = Library()
3、写过滤器、自定义标签等函数
4、在html中导入 {%  load myfilter %}
5、使用
自定义过滤器
# 导入自定义包  
from django.template import Library
# 实例化
Library:register = Library()
@register.filter('addyuan')
def AddYuan(value):  value代表使用过滤器要修饰的对象
    return str(value)+'元'   在后面加“元”

自定义标签

简单标签
# 使用时要导入自定义标签的文件,标签的使用为{%  %},复用时起过别名后用{{ 别名 }}
# 导入自定义包  
from django.template import Library
# 实例化
Library:register = Library()
# 1、简单标签
@register.simple_tag()
def nowtime(time_format):  time_format是传进来的参数
    return datetime.now().strftime(time_format)
在html中使用
在html标签之下,head标签之上添加代码 {% load myfilters %}  将写的myfilter.py导入到html文件中
{# 自定义简单标签 %p上下午 #}
{% nowtime '%Y-%m-%d%H:%M:%S%p' %}<br>   传参直接写后面,此时传参为时间的格式


标签复用
{% nowtime'%Y-%m-%d%H:%M:%S%p' as mytime %}
{{ mytime }}
{{ mytime }}
简单标签可以使用模板内的所有参数
# takes_context=True 可以使用模板中的变量
@register.simple_tag(takes_context=True,name='mymessage')
#必须有context参数(类似于类方法的self参数,可改,但意义一样),代表模板中所有的变量
def mymessage(context):
    return context['mes'] + '成功'    在模板的mes变量后加“成功”
{#简单标签使用模板变量#}
{% mymessage %}

内含标签,需要模板
定义
@register.inclusion_tag('neihanbiaoqian.html')   此为模板
def viewgoods():
    list = ['香蕉','苹果','橘子']
    return {'list':list}
模板内
<html lang="en">
    <head>
        <metacharset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <ul>
            {% for i in list %}
            <li> {{i}} </li>
            {% endfor %}
        </ul>
    </body>
</html>
使用
{% load myfilters %}  将写的过滤器文件(myfilter.py)导入到html文件中

{#内含标签:需要模板#}
{% viewgoods %}

模板继承

1、创建父模板,父模板中写block
<!DOCTYPEhtml>
<htmllang="en">
	<head>
		<metacharset="UTF-8">
		<title>Title</title>
	</head>
	<body>
        {% block head %}
        	<h1>我是head</h1>
        {% endblock head %}
        
        {% block body %}
        	<h2>我是body</h2>
        {% endblock body %}
        
        {% block feet %}
        	<h3>我是feet</h3>
        {% endblock feet %}
	</body>
</html>
2、子模板继承,extends,只能继承一个父模板
{#模板继承#}
{%extends'base.html'%}

{#模板修改#}
{% block body %}
<h2>我是child,我能改变body</h2>
{% endblock body %}

{% block head %}
我也能改变head,不分顺序
{% endblock head %}
子模板包含,include,可以包含多个父模板,但无法修改
{% include 'base.html' %}
{% include 'base_child.html' %}
根据提供的引用内容,我无法找到关于Django运费模板的具体信息。但是,我可以为您提供一些关于Django模板的基本知识。 Django模板是一种用于生成动态网页的工具。它允许您将静态HTML与动态数据结合在一起,以便在网页上显示动态内容。在Django中,您可以使用模板来呈现数据,并将其与视图函数中的逻辑进行分离。 在Django中,您可以创建一个模板文件,其中包含HTML模板语言。模板语言允许您在模板中插入动态数据、循环和条件语句等。您可以使用模板标签和过滤器来处理数据并进行逻辑操作。 要使用Django模板,您需要在视图函数中加载模板,并将数据传递给模板进行渲染。然后,您可以将渲染后的模板发送给客户端以显示在浏览器中。 以下是一个简单的示例,演示如何在Django中使用模板: 1. 创建一个模板文件(例如template.html),其中包含HTML模板语言: ```html <!DOCTYPE html> <html> <head> <title>My Django Template</title> </head> <body> <h1>Welcome to {{ website_name }}</h1> <p>Today's date is {{ current_date }}</p> </body> </html> ``` 2. 在视图函数中加载模板并将数据传递给模板进行渲染: ```python from django.shortcuts import render from datetime import date def my_view(request): website_name = "My Website" current_date = date.today() return render(request, 'template.html', {'website_name': website_name, 'current_date': current_date}) ``` 3. 在urls.py中配置URL与视图函数的映射关系: ```python from django.urls import path from .views import my_view urlpatterns = [ path('my-view/', my_view, name='my-view'), ] ``` 通过访问`http://localhost:8000/my-view/`,您将看到渲染后的模板页面,其中包含动态数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值