写在前面
最近看到稀土掘金在搞2023年终总结征文活动,一直想尝试投稿试试,周末我就花了近一下午时间写完初稿,然后周一、周二完成精读再改稿,感觉OK,昨晚凌晨第一时间在稀土掘金投稿。
结果,又发生了同样的事情。
同样的文章,在博客园上、公号上阅读量很OK,在稀土掘金上就上不来。
这应该是我博客园第四次上榜一了把,也是是第二次找到运营大大了,我都有点不好意思了,我好不容易鼓起勇气想投个稿,结果尴尬,不过后来运营大大也帮忙上推荐了,但是值得一说的是吗,这个掘金阅读量上不来,是我写的不行吗?回头我好好总结下,做个复盘。
先不想了,还是接着更文吧。
模板中标签的使用
Django
的MVC
思想,模板是一个文本,用于分离文档的表现形式和内容,而不是将数据与视图混合在一起
先创建静态文件,在mycontent/templates/
下创建template_demo.html
,暂时先不修改如内容,在django_project/settings.py
,修改为如下代码:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR+"/mycontent/templates",], # 默认为[]
'APP_DIRS': True,
'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',
],
},
},
]
1、模板标签变量的使用
template_demo.html
添加如下代码:
TEMPLATE_DEMO
variables_demo: {{ name }}
在mycontent/views.py
中添加代码如下:
def variables_demo(request):
name = 'variables_demo'
return render(request, 'template_demo.html', {'name': name})
在django_project/urls.py
中添加代码如下:
urlpatterns = [
path("index/", views.index),
re_path('^$', views.index),
url('^$', views.index),
url('^my_content/$', views.my_content),
url('^my_content/page=(d+)$', views.pagehelper),
url('variables_demo/', views.variables_demo)
]
效果如下:
2、模板标签列表的使用
template_demo.html
添加如下代码:
TEMPLATE_DEMO
variables_demo: {{ name }}
list_demo: {{ list }}
在mycontent/views.py
中添加代码如下:
def list_demo(request):
list = ['list1','list2','list3']
return render(request, 'template_demo.html', {'list': list})
在django_project/urls.py
中添加代码如下:
urlpatterns = [
path("index/", views.index),
re_path('^$', views.index),
url('^$', views.index),
url('^my_content/$', views.my_content),
url('^my_content/page=(d+)$', views.pagehelper),
url('variables_demo/', views.variables_demo),
url('list_demo/', views.list_demo)
]
效果如下:
3、模板标签字典的使用
template_demo.html
添加如下代码:
TEMPLATE_DEMO
variables_demo: {{ name }}
list_demo: {{ list }}
dict_demo: {{ dict }}
在mycontent/views.py
中添加代码如下:
def dict_demo(request):
dict_demo = {'dict': 'dict_demo'}
return render(request, 'template_demo.html', {'dict': dict_demo})
在django_project/urls.py
中添加代码如下:
urlpatterns = [
path("in服务器托管网dex/", views.index),
re_path('^$', views.index),
url('^$', views.index),
url('^my_content/$', views.my_content),
url('^my_content/page=(d+)$', views.pagehelper),
url('variables_demo/', views.variables_demo),
url('list_demo/', views.list_demo),
url('dict_demo/', views.dict_demo),
]
效果如下:
知识点:
变量模板语法:
- view:{”HTML变量名” : “views变量名”}
- HTML:{{变量名}}
4、模板的一些特殊栗子
template_demo.html
添加如下代码:
TEMPLATE_DEMO
variables_demo: {{ name|safe }}
过滤器部分例子: {{ name|upper }}
length例子: {{ name|length }}
截断的字符串将以 ... 结尾: {{ name|truncatechars:2}}
list_demo: {{ list }}
list_demo: {{ list|first|upper }}
dict_demo: {{ dict }}
在mycontent/views.py
中添加代码如下:
def variables_demo(request):
name = 'alert("safe test!")'
return render(request, 'template_demo.html', {'name': name})
效果如下:
知识点:
{{ views_str|safe }}
:将字符串标记为安全,不需要转义,要保证 views.py
传过来的数据绝对安全,才能用 safe
。
5、if/else、for标签、遍历字典的使用
if/else标签:
基本语法格式如下:
{% if condition %}
... display
{% endif %}
# 或者:
{% if condition1 %}
... display 1
{% elif condition2 %}
... display 2
{% else %}
... display 3
{% endif %}
根据条件判断是否输出。if/else
支持嵌套。
{% if %}
标签接受 and
,or
或者 not
关键字来对多个变量做判断 ,或者对变量取反( not ),例如:
{% if athlete_list and coach_list %}
athletes 和 coaches 变量都是可用的。
{% endif %}
for 标签使用:
基本语法格式如下:
{% for athlete in athlete_list %}
{{ athlete.name }}
{% endfor %}
示例:
{% for athlete in athlete_list %}
- {{ athlete.name }}
{% endfor %}
遍历字典的使用
{% for i,j in views_dict.items %}
{{ i }}---{{ j }}
{% endfor %}
效果如下:
6、注释标签
Django
注释使用 {# #}。
{# 这是一个注释 #}
写在最后
感觉有点像Java
中的httl
、jsp
都有点像呢,马上熟悉感就来了,作为一个Java
党,这突然而来的熟悉感,真的好亲戚,哈哈!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
前言 IDEA是个好东西,但是使用maven项目时可能会让人很难受,要么是非常慢,要么直接下载不了。所以我们需要给IDEA自带maven换源,保证我们的下载速度。 具体操作 打开IDEA安装路径,然后服务器托管网打开下面的文件夹 pluginsmavenlib…