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跳转
return redirect( reverse( 'skip:Index' ) )
return redirect( reverse( 'skip:goods' , kwargs= { 'id' : 999 } ) )
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( )
@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 }}
简单标签可以使用模板内的所有参数
@register. simple_tag( takes_context= True , name= 'mymessage' )
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' %}