[django学习笔记](六)Django 模板进阶
程序员文章站
2022-07-14 22:39:07
...
6-1 显示字符串
创建项目zqxt_tmpl2, 新建名为learn的app, 修改其中的views.py
# -*- coding: utf-8 -*-
from django.shortcuts import render
def home(request):
string = u"我在自学django,用它来建网站"
return render(request, 'learn/home.html', {'string' : string})
在视图中传递了一个名为‘string’的字符串,接下来我们创建在templates/learn,在其中创建home.html,输入以下内容
<!DOCTYPE html>
<html>
<head>
<title>在网页上显示一个字符串</title>
</head>
<body>
<h1>{{ stirng }}</h1>
</body>
</html>
按照之前所学的操作修改对应的settings.py和urls.py
from django.contrib import admin
from django.urls import path
from learn import views as learn_views
urlpatterns = [
path('admin/', admin.site.urls),
path('home/', learn_views.home),
]
运行服务器,浏览网站
(QAQ为什么没有显示字符串呢,为什么!(╯`□′)╯~ ╧╧……找不到原因……先跳过这个错误继续做)
6-2 for循环和列表
在views.py中将home函数改为
def home(request):
List = map(str, range(100)) # 一个长度为100的 List
return render(request, 'learn/home.html', {'List' : List})
home.html改为:
{% for item in List %}
{{ item }},
{% endfor %}
运行服务器打开网页
如果想让最后一个数字后没有逗号,使用forloop.last变量(如果是最后一个元素返回真,否则返回假)
改成:
{% for item in List %}
{{ item }}{% if not forloop.last %},{% endif %}
{% endfor %}
新增语句的含义是,如果不是最后一个元素就加上逗号
for循环其他相关变量:
变量 | 描述 |
forloop.counter | 索引从1开始算 |
forloop.counter0 | 索引从0开始算 |
forloop.revcounter | 索引从最大长度到1 |
forloop.revcounter0 | 索引从最大长度到0 |
foorloop.first | 当遍历的元素是第一个元素时为真 |
foorloop.parentloop | 嵌套循环中获取上一次for循环的forloop |
6-3 模板中的逻辑操作
urls.py增加路径
path('logic/', learn_views.logic),
在views.py中新增函数
def logic(request):
var = {'grade' : 80 }
return render(request, 'learn/logic.html', {'var' : var})
新建logic.html
{% if var.grade >= 90 %}
成绩优秀,不错
{% elif var.grade >= 80 %}
成绩良好
{% elif var.grade >= 70 %}
成绩一般
{% elif var.grade >= 60 %}
刚好及格,仍需努力
{% else %}
不及格
{% endif %}
注意:比较符号前后必须至少有一个空格
打开网页127.0.0.1:8000/logic/
在模板中也可以使用and,or,not,in,not in等
6-4 模板中获取当前网址,当前用户等
1、获取当前用户
将home.html改为
{{ request.user }}
作用是获取当前用户名,默认是anonymousUser
如果登录就显示内容,否则不显示
{% if request.user.is_authenticated %}
{{ request.user.username }},您好!
{% else %}
请登陆,这里放登陆链接
{% endif %}
2、获取当前网址
{{ request.path}}
3、获取当前GET参数
{{ request.GET.urlencode }}
教程链接:https://code.ziqiangxuetang.com/django/django-template2.html
上一篇: Django-富文本编辑器的应用。
下一篇: Python学习笔记——Django模板
推荐阅读