---恢复内容开始---

为了让Django找到自定义的模板过滤器和模板标签,需要进行文件路径配置,配置方式分为APP目录下配置和项目路径下配置两种方式:

1.在APP目录下配置:针对某个应用特定的自定义

第一步:在APP目录下创建"templatetags"文件夹;

第二步:在"templatetags"文件夹下创建python模块(py文件)

2.在项目目录下配置:针对所有应用的自定义

第一步:在项目目录下创建一个新的app,例如"common"文件夹

第二步:在项目目录settings.py文件下的INSTALL_APPS对新app进行注册

第三步:在"common"文件夹下创建"templatetags"文件夹,在文件夹里创建自定义过滤器及标签

下面以第二种方式进行配置

一、自定义过滤器

模板过滤器本质上是函数,有一个或两个参数,返回字符串

    第一个参数是传递进来的模板变量(不一定是字符串)

    第二个参数是普通参数,可以是默认参数,也可以不要

在新建的templatetags文件夹下创建"common_filter.py"文件

要求,数据库中通过0、1记录性别,0表示女生,1表示男生,在common_filter.py文件自定义langunge功能,选择语言输出性别,其步骤如下:

1).template/student/views.py文件
def index(request):
students = [
{"id":10117,"name":'Willy', "age":21, "sex":1},
{"id":10121,"name":'Kitty', "age":20, "sex":0},
{"id":10128,"name":'Kate', "age":19, "sex":0},
{"id":10133,"name":'Tom', "age":22, "sex":1},
{"id":10135,"name":'Rose', "age":20, "sex":0}
]
return render(request, 'student/index.html', context={
'students':students,
})
2).编辑common_filter.py文件,定义过滤器language函数,并通过django.template.Library的实例的filter方法进行注册

templeatetags/common_filter.py设置

from django import template

register = template.Library()

# 普通注册
def language(value, arg="zh"):
dt = {
"zh":['女', '男'],
"en":['female', 'male']
}
return dt[arg][value] #value为输入的值,分别为0、 1 register.filter(name="la", language)

或者

from django import template

register = template.Library()

# 装饰器注册
@register.filter
def language(value, arg="zh"):
dt={
"zh":['女','男'],
"en":['female', 'male']
}
return dt[arg][value]
3).在模板中使用,需要先通过python模块名进行load加载,然后在需要使用过滤器的地方添加自定义过滤器

在模板文件templates/student/index.html中调用需要先load下

# load调用自定义过滤器
{% load common_filter %}
<!DOCTYPE html>
<html lang="zh-CN">
<head>

然后通过参数调用,通过修改anguage参数可以改变性别语言输出,其中"zh"为默认参数

        <table class="table">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
{% for stu in students %}
<tr {% if stu.sex == 'Male' %}
style="color:red"
{% endif %}>
<td><a href="{% url "student:detail" stu.id%}">
{{ forloop.counter }}
</a>
</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
# 调用自定义过滤器
<td>{{ stu.sex|language:"en" }}</td>
</tr>
{% endfor %}
</tbody>
</table>

二、自定义标签

模板标签用于实现各种逻辑,如for、if等,但有些逻辑无法用模块标签实现。Django提供了很多快捷方式编写大多数的类型的标签,常用的有简单标签以及自定义标签

更多自定义的标签类型请参照Django自定义标签

许多模板标签接受字符串、模板变量等作为参数,并根据输入的参数与外部信息进行处理,返回结果,例如url模板标签接受一个字符串以及模板变量,输出想要的结果。

1.简单标签(Sample)

Django通过django.template.Library.simple_tag()来编辑简单标签

创建一个输出当前时间的自定义标签

(1).方式一:一般使用

在新建的templatetags文件夹下创建"common_tag.py"文件,并通过django.template.Library的实例的simple_tag方法进行注册

1).common_tags.py文件:定义标签并注册
rom django import template
from datetime import datetime register = template.Library() @register.simple_tag(name="current") def current_time(format_str):
return datetime.now().strftime(format_str)
2).templates/student/html文件:使用自定义标签
# load调用自定义过滤器
{% load common_tags %}
<!DOCTYPE html>
<html lang="zh-CN">
<head> title>学生信息网页</title>
<link href="{% static 'student/css/mystyle.css' %}" rel="stylesheet">
</head>
<body>
# 调用自定义标签
<h1>当前时间为:{% current '%Y-%m-%d %H:%M:%S' %}</h1>
</body>
</html>
(2).方式二:上下文传参

在views.py中先设置format_str,然后通过context进行传递

1).student/views.py:定义模板变量
def index(request):
students = [
{"id":10117,"name":'Willy', "age":21, "sex":1},
{"id":10121,"name":'Kitty', "age":20, "sex":0},
{"id":10128,"name":'Kate', "age":19, "sex":0},
{"id":10133,"name":'Tom', "age":22, "sex":1},
{"id":10135,"name":'Rose', "age":20, "sex":0}
]
format_str = "%Y-%m-%d %H:%M:%S"
return render(request, 'student/index.html', context={
'students':students,
'format_str':format_str
})
2).templatetags/common_tags.py文件:定义标签并注册,在simple_tag中设置take_context=True
from django import template
from datetime import datetime register = template.Library() @register.simple_tag(name="current", takes_context=True)
def current_time(context):
return datetime.now().strftime(context['format_str'])
3).templates/student/html文件:使用标签
# load调用自定义过滤器
{% load common_tags %}
<!DOCTYPE html>
<html lang="zh-CN">
<head> <title>学生信息网页</title>
<link href="{% static 'student/css/mystyle.css' %}" rel="stylesheet">
</head>
<body>
# 调用自定义标签,不需要添加参数
<h1>当前时间为:{% current %}</h1>
</body>
</html>

2.包含标签(Inclusion)

另一种常见的标签类型,通过渲染另一个模板来展示数据。有时候需要把某些数据渲染成一个固定样式是需要用到包含标签

Django通过django.template.Library.inclue_tag()来编辑简单标签

创建一个输出当前时间的自定义标签

在新建的templatetags文件夹下创建"common_tag.py"文件,并通过django.template.Library的实例的simple_tag方法进行注册,其步骤为:

    a).定义views.py,为students添加课程信息:student/views.py

    b).定义一个函数,接受调用时传递的模板变量:student/templatetags/comon_tags.py

    c).在定义一个html模板:templates/student/show_list_as_ul.html

    d).编辑index.html:templates/student/index.html

(1) 只有一个参数
1).student/views.py
def index(request):
students = [
{"id":10117,"name":'Willy', "age":21, "sex":1, "course":['python', 'java', 'C', 'C++']},
{"id":10121,"name":'Kitty', "age":20, "sex":0, "course":['python', 'java', 'C', 'C++']},
{"id":10128,"name":'Kate', "age":19, "sex":0, "course":['python', 'java', 'C', 'C++']},
{"id":10133,"name":'Tom', "age":22, "sex":1, "course":['python', 'java', 'C', 'C++']},
{"id":10135,"name":'Rose', "age":20, "sex":0, "course":['python', 'java', 'C', 'C++']}
]
return render(request, 'student/index.html', context={
'students':students,
})
2).student/templatetags/comon_tags.py
from django import template
from datetime import datetime register = template.Library() @register.inclusion_tag("student/show_list_as_ul.html")
def show_list_as_ul(value):
return {'ls': value}
3).templates/student/show_list_as_ul.html

其中ls为2)中定义的ls

<ul>
{% for l in ls %}
<li>{{ l }}</li>
{% endfor %} </ul>
4).templates/student/index.html
{% load common_tags %}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<div class="container">
<table class="table">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>课程</th>
</tr>
</thead>
<tbody>
{% for stu in students %}
<tr {% if stu.sex == 'Male' %}
style="color:red"
{% endif %}>
<td><a href="{% url "student:detail" stu.id%}">
{{ forloop.counter }}
</a>
</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
<td>{{ stu.sex}</td>
# 调用自定义标签
<td>{% show_list_as_ul stu.course %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
(2) 有两个参数
1).student/views.py
def index(request):
students = [
{"id":10117,"name":'Willy', "age":21, "sex":1, "course":['python', 'java', 'C', 'C++']},
{"id":10121,"name":'Kitty', "age":20, "sex":0, "course":['python', 'java', 'C', 'C++']},
{"id":10128,"name":'Kate', "age":19, "sex":0, "course":['python', 'java', 'C', 'C++']},
{"id":10133,"name":'Tom', "age":22, "sex":1, "course":['python', 'java', 'C', 'C++']},
{"id":10135,"name":'Rose', "age":20, "sex":0, "course":['python', 'java', 'C', 'C++']}
]
return render(request, 'student/index.html', context={
'students':students,
})
2).student/templatetags/comon_tags.py
from django import template
from datetime import datetime register = template.Library() @register.inclusion_tag("student/show_list_as_ul.html")
def show_list_as_ul(value, style):
return {'ls': value, 'style', style}
3).templates/student/show_list_as_ul.html

其中style、ls为2)中定义的style和ls

{% if style == 'button' %}
<div class="list-group">
{% for l in ls %}
<button type="button" class="list-group-item">{{ l }}</button>
{% endfor %}
</div>
{% elif style == 'link' %}
<div class="list-group">
{% for l in ls %}
<a href="#" class="list-group-item active">{{ l }}</a>
{% endfor %}
</div>>
{% else %}
<ul class="list-group">
{% for l in ls %}
<li class="list-group-item">{{ l }}</li>
{% endfor %}
</ul>
{% endif %}
4).templates/student/index.html
{% load common_tags %}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<div class="container">
<table class="table">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>课程</th>
</tr>
</thead>
<tbody>
{% for stu in students %}
<tr {% if stu.sex == 'Male' %}
style="color:red"
{% endif %}>
<td><a href="{% url "student:detail" stu.id%}">
{{ forloop.counter }}
</a>
</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
<td>{{ stu.sex }}</td>
# 调用自定义标签,改变参数"link"、"button"等输出不同样式
<td>{% show_list_as_ul stu.course 'link'%}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
```<p>---恢复内容结束---</p>为了让Django找到自定义的模板过滤器和模板标签,需要进行文件路径配置,配置方式分为APP目录下配置和项目路径下配置两种方式: **1.在APP目录下配置:针对某个应用特定的自定义**
第一步:在APP目录下创建"templatetags"文件夹;
第二步:在"templatetags"文件夹下创建python模块(py文件)
**2.在项目目录下配置:针对所有应用的自定义**
第一步:在项目目录下创建一个新的app,例如"common"文件夹
第二步:在项目目录settings.py文件下的INSTALL_APPS对新app进行注册
第三步:在"common"文件夹下创建"templatetags"文件夹,在文件夹里创建自定义过滤器及标签
下面以第二种方式进行配置 ### 一、自定义过滤器
模板过滤器本质上是函数,有一个或两个参数,返回字符串
&emsp; &emsp; 第一个参数是传递进来的模板变量(不一定是字符串)
&emsp; &emsp; 第二个参数是普通参数,可以是默认参数,也可以不要
在新建的templatetags文件夹下创建"common_filter.py"文件
要求,数据库中通过0、1记录性别,0表示女生,1表示男生,在common_filter.py文件自定义langunge功能,选择语言输出性别,其步骤如下:
###### 1).template/student/views.py文件
```python
def index(request):
students = [
{"id":10117,"name":'Willy', "age":21, "sex":1},
{"id":10121,"name":'Kitty', "age":20, "sex":0},
{"id":10128,"name":'Kate', "age":19, "sex":0},
{"id":10133,"name":'Tom', "age":22, "sex":1},
{"id":10135,"name":'Rose', "age":20, "sex":0}
]
return render(request, 'student/index.html', context={
'students':students,
})
2).编辑common_filter.py文件,定义过滤器language函数,并通过django.template.Library的实例的filter方法进行注册

templeatetags/common_filter.py设置

from django import template

register = template.Library()

# 普通注册
def language(value, arg="zh"):
dt = {
"zh":['女', '男'],
"en":['female', 'male']
}
return dt[arg][value] #value为输入的值,分别为0、 1 register.filter(name="la", language)

或者

from django import template

register = template.Library()

# 装饰器注册
@register.filter
def language(value, arg="zh"):
dt={
"zh":['女','男'],
"en":['female', 'male']
}
return dt[arg][value]
3).在模板中使用,需要先通过python模块名进行load加载,然后在需要使用过滤器的地方添加自定义过滤器

在模板文件templates/student/index.html中调用需要先load下

# load调用自定义过滤器
{% load common_filter %}
<!DOCTYPE html>
<html lang="zh-CN">
<head>

然后通过参数调用,通过修改anguage参数可以改变性别语言输出,其中"zh"为默认参数

        <table class="table">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
{% for stu in students %}
<tr {% if stu.sex == 'Male' %}
style="color:red"
{% endif %}>
<td><a href="{% url "student:detail" stu.id%}">
{{ forloop.counter }}
</a>
</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
# 调用自定义过滤器
<td>{{ stu.sex|language:"en" }}</td>
</tr>
{% endfor %}
</tbody>
</table>

二、自定义标签

模板标签用于实现各种逻辑,如for、if等,但有些逻辑无法用模块标签实现。Django提供了很多快捷方式编写大多数的类型的标签,常用的有简单标签以及自定义标签

更多自定义的标签类型请参照Django自定义标签

许多模板标签接受字符串、模板变量等作为参数,并根据输入的参数与外部信息进行处理,返回结果,例如url模板标签接受一个字符串以及模板变量,输出想要的结果。

1.简单标签(Sample)

Django通过django.template.Library.simple_tag()来编辑简单标签

创建一个输出当前时间的自定义标签

(1).方式一:一般使用

在新建的templatetags文件夹下创建"common_tag.py"文件,并通过django.template.Library的实例的simple_tag方法进行注册

1).common_tags.py文件:定义标签并注册
rom django import template
from datetime import datetime register = template.Library() @register.simple_tag(name="current") def current_time(format_str):
return datetime.now().strftime(format_str)
2).templates/student/html文件:使用自定义标签
# load调用自定义过滤器
{% load common_tags %}
<!DOCTYPE html>
<html lang="zh-CN">
<head> title>学生信息网页</title>
<link href="{% static 'student/css/mystyle.css' %}" rel="stylesheet">
</head>
<body>
# 调用自定义标签
<h1>当前时间为:{% current '%Y-%m-%d %H:%M:%S' %}</h1>
</body>
</html>
(2).方式二:上下文传参

在views.py中先设置format_str,然后通过context进行传递

1).student/views.py:定义模板变量
def index(request):
students = [
{"id":10117,"name":'Willy', "age":21, "sex":1},
{"id":10121,"name":'Kitty', "age":20, "sex":0},
{"id":10128,"name":'Kate', "age":19, "sex":0},
{"id":10133,"name":'Tom', "age":22, "sex":1},
{"id":10135,"name":'Rose', "age":20, "sex":0}
]
format_str = "%Y-%m-%d %H:%M:%S"
return render(request, 'student/index.html', context={
'students':students,
'format_str':format_str
})
2).templatetags/common_tags.py文件:定义标签并注册,在simple_tag中设置take_context=True
from django import template
from datetime import datetime register = template.Library() @register.simple_tag(name="current", takes_context=True)
def current_time(context):
return datetime.now().strftime(context['format_str'])
3).templates/student/html文件:使用标签
# load调用自定义过滤器
{% load common_tags %}
<!DOCTYPE html>
<html lang="zh-CN">
<head> title>学生信息网页</title>
<link href="{% static 'student/css/mystyle.css' %}" rel="stylesheet">
</head>
<body>
# 调用自定义标签
<h1>当前时间为:{% current %}</h1>
</body>
</html>

2.包含标签(Inclusion)

另一种常见的标签类型,通过渲染另一个模板来展示数据。有时候需要把某些数据渲染成一个固定样式是需要用到包含标签

Django通过django.template.Library.inclue_tag()来编辑简单标签

创建一个输出当前时间的自定义标签

在新建的templatetags文件夹下创建"common_tag.py"文件,并通过django.template.Library的实例的simple_tag方法进行注册,其步骤为:

    a).定义views.py,为students添加课程信息:student/views.py

    b).定义一个函数,接受调用时传递的模板变量:student/templatetags/comon_tags.py

    c).在定义一个html模板:templates/student/show_list_as_ul.html

    d).编辑index.html:templates/student/index.html

(1) 只有一个参数
1).student/views.py
def index(request):
students = [
{"id":10117,"name":'Willy', "age":21, "sex":1, "course":['python', 'java', 'C', 'C++']},
{"id":10121,"name":'Kitty', "age":20, "sex":0, "course":['python', 'java', 'C', 'C++']},
{"id":10128,"name":'Kate', "age":19, "sex":0, "course":['python', 'java', 'C', 'C++']},
{"id":10133,"name":'Tom', "age":22, "sex":1, "course":['python', 'java', 'C', 'C++']},
{"id":10135,"name":'Rose', "age":20, "sex":0, "course":['python', 'java', 'C', 'C++']}
]
return render(request, 'student/index.html', context={
'students':students,
})
2).student/templatetags/comon_tags.py
from django import template
from datetime import datetime register = template.Library() @register.inclusion_tag("student/show_list_as_ul.html")
def show_list_as_ul(value):
return {'ls': value}
3).templates/student/show_list_as_ul.html

其中ls为2)中定义的ls

<ul>
{% for l in ls %}
<li>{{ l }}</li>
{% endfor %} </ul>
4).templates/student/index.html
{% load common_tags %}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<div class="container">
<table class="table">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>课程</th>
</tr>
</thead>
<tbody>
{% for stu in students %}
<tr {% if stu.sex == 'Male' %}
style="color:red"
{% endif %}>
<td><a href="{% url "student:detail" stu.id%}">
{{ forloop.counter }}
</a>
</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
<td>{{ stu.sex}</td>
# 调用自定义标签
<td>{% show_list_as_ul stu.course %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
(2) 有两个参数
1).student/views.py
def index(request):
students = [
{"id":10117,"name":'Willy', "age":21, "sex":1, "course":['python', 'java', 'C', 'C++']},
{"id":10121,"name":'Kitty', "age":20, "sex":0, "course":['python', 'java', 'C', 'C++']},
{"id":10128,"name":'Kate', "age":19, "sex":0, "course":['python', 'java', 'C', 'C++']},
{"id":10133,"name":'Tom', "age":22, "sex":1, "course":['python', 'java', 'C', 'C++']},
{"id":10135,"name":'Rose', "age":20, "sex":0, "course":['python', 'java', 'C', 'C++']}
]
return render(request, 'student/index.html', context={
'students':students,
})
2).student/templatetags/comon_tags.py
from django import template
from datetime import datetime register = template.Library() @register.inclusion_tag("student/show_list_as_ul.html")
def show_list_as_ul(value, style):
return {'ls': value, 'style', style}
3).templates/student/show_list_as_ul.html

其中style、ls为2)中定义的style和ls

{% if style == 'button' %}
<div class="list-group">
{% for l in ls %}
<button type="button" class="list-group-item">{{ l }}</button>
{% endfor %}
</div>
{% elif style == 'link' %}
<div class="list-group">
{% for l in ls %}
<a href="#" class="list-group-item active">{{ l }}</a>
{% endfor %}
</div>>
{% else %}
<ul class="list-group">
{% for l in ls %}
<li class="list-group-item">{{ l }}</li>
{% endfor %}
</ul>
{% endif %}
4).templates/student/index.html
{% load common_tags %}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<div class="container">
<table class="table">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>课程</th>
</tr>
</thead>
<tbody>
{% for stu in students %}
<tr {% if stu.sex == 'Male' %}
style="color:red"
{% endif %}>
<td><a href="{% url "student:detail" stu.id%}">
{{ forloop.counter }}
</a>
</td>
<td>{{ stu.name }}</td>
<td>{{ stu.age }}</td>
<td>{{ stu.sex }}</td>
# 调用自定义标签,改变参数"link"、"button"等输出不同样式
<td>{% show_list_as_ul stu.course 'link'%}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>

Django入门--自定义过滤器与标签的更多相关文章

  1. Django——5 自定义过滤器及标签

    Django 自定义过滤器 自定义标签 简单标签 包含标签 自定义过滤器 自定义过滤器就是一个带有一个或两个参数的Python 函数: - (输入的)变量的值 —— 不一定是字符串形式. - 参数的值 ...

  2. Django模板—-自定义过滤器和标签

    一.filter和simple_tag 1.在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建template ...

  3. Django 05 自定义过滤器、自定义标签

    Django 05 自定义过滤器.自定义标签 一.自定义过滤器 #1.在项目目录下创建一个python package包 取名为common(这个名字可以自定义) #2.在common目录下创建一个t ...

  4. django自定义过滤器和标签

    1.自定义过滤器和标签的流程: 1.在某个app下创建一个名为templatetags(必需,且包名不可变)的包.假设我们在名为app01的app下创建了一个templatetags的包,并在该包下创 ...

  5. 小白学习django第三站-自定义过滤器及标签

    要使用自定义过滤器和标签,首先要设置好目录结构 现在项目目录下建立common的python包 再将common加入到setting.py中的INSTALLED_APP列表中 在common创建目录t ...

  6. Django学习——Django settings 源码、模板语法之传值、模板语法之获取值、模板语法之过滤器、模板语法之标签、自定义过滤器、标签、inclusion_tag、模板的导入、模板的继承

    Django settings 源码 """ 1.django其实有两个配置文件 一个是暴露给用户可以自定义的配置文件 项目根目录下的settings.py 一个是项目默 ...

  7. 一、变量.二、过滤器(filter).三、标签(tag).四、条件分支tag.五、迭代器tag.六、自定义过滤器与标签.七、全系统过滤器(了解)

    一.变量 ''' 1.视图函数可以通过两种方式将变量传递给模板页面 -- render(request, 'test_page.html', {'变量key1': '变量值1', ..., '变量ke ...

  8. Web框架之Django_04 模板层了解(过滤器、标签、自定义过滤器、标签、inclusion_tag、模板的继承与导入)

    摘要: 模版层(模板语法) 模板语法 过滤器 标签 自定义过滤器.标签 inclusion_tag 模板的继承 模板的导入 一.模板语法: 常用语法:{{     }}    变量相关{% %}    ...

  9. 自定义过滤器和标签 & 静态文件相关

    自定义过滤器和标签 1.在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建templatetags模块(模块名 ...

随机推荐

  1. [Angular] Freshness Caching Policy - Network First, Cache Last

    In some cases, you want to get fresh data instead of cache data to the screen, such as stock applica ...

  2. openstack中Nova组件Networks的全部python API 汇总

    感谢朋友支持本博客.欢迎共同探讨交流.因为能力和时间有限.错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  3. JavaScript高级特性之原型

    JavaScript的原型 原型prototype属性仅仅适用于函数对象(这里的函数对象是自己为了理解更好定义的,普通对象是没有原型属性的) 1.研究函数原型: <script type=&qu ...

  4. 文字录入无限制Undo,Redo的实现

    这里只针对Edit的内容做一个简单的undo,redo功能: 原理就是,将新增字符和相关信息添加到undo列表,在undo动作时,取记录信息,并在edit中删除新增的字符,然后将此动作添加到redo列 ...

  5. JFinal Starting scanner at interval of 5 seconds.报错

    Starting JFinal 2.0 Starting scanner at interval of 5 seconds. Starting web server on port: 80 Excep ...

  6. ubuntu之修改ls显示颜色

    Linux 系统中 ls 文件夹的痛苦我就不说了,为了不伤眼睛,一般 ssh 终端背景都用的黑色,文件夹又是你妈的深蓝色,每次看文件夹都要探头仔细去看.这下彻底解决这个问题.   因为ubuntu下的 ...

  7. C语言 - 头文件使用案例

    源代码分门别类管理,通过头文件. 放置一些函数声明,变量声明,常量定义,宏定义. hotel.h #ifndef HOTEL_H_INCLUDED #define HOTEL_H_INCLUDED # ...

  8. Spark MLlib介绍

    Spark MLlib介绍 Spark之所以在机器学习方面具有得天独厚的优势,有以下几点原因: (1)机器学习算法一般都有很多个步骤迭代计算的过程,机器学习的计算需要在多次迭代后获得足够小的误差或者足 ...

  9. poj 3913(水)

    Description You have devised a new encryption technique which encodes a message by inserting between ...

  10. SwiftUI 官方教程(四)

    SwiftUI 官方教程(四) 4. 自定义 Image View 搞定名称和位置 view 后,我们来给地标添加图片. 这不需要添加很多代码,只需要创建一个自定义 view,然后给图片加上遮罩.边框 ...