标签:py num views python runoob request django html 模板
参考:
[1] https://www.runoob.com/django/django-template.html
1. 视图模板
设置视图模板是为了使“数据与视图分离”。
1.1 设置路径,包括 templates 文件夹
settings.py 中
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 修改位置
1.2 编辑模板
templates/runoob.html 中:
<h1>{{ hello }}</h1>
1.3 设置动作函数
views.py 中:
def runoob(request):
context = {}
context['hello'] = 'Hello World!'
return render(request, 'runoob.html', context)
1.4 关联 url
urls.py 中:
urlpatterns = [
path('runoob/', views.runoob),
]
2. Ref. [1] 剩余内容中有意思的点
Ref. [1] 中还有很多关于模板的内容,但大多数我估计用不着,所以只摘录一点点似乎用得着的:
2.1 date
动作函数:
def runoob(request):
import datetime
now =datetime.datetime.now()
return render(request, "runoob.html", {"time": now})
runoob.html:
{{ time|date:"Y-m-d" }}
效果:
2020-05-16
2.2 safe
Django 会自动对 views.py 传到 HTML 文件中的标签语法进行转义,令超链接语义失效。加 safe 过滤器是告诉 Django 该数据是安全的,不必对其进行转义,可以让该数据语义生效。
例如,views.py 中:
def runoob(request):
views_str = "<a href='https://www.runoob.com/'>点击跳转</a>"
return render(request, "runoob.html", {"views_str": views_str})
runoob.html中:
{{ views_str|safe }} # 加这个 safe 才会有超链接
2.3 条件判断
{% if condition1 %}
... display 1
{% elif condition2 %}
... display 2
{% else %}
... display 3
{% endif %}
可以嵌套使用。例如 views.py 中:
def runoob(request):
views_num = 88
return render(request, "runoob.html", {"num": views_num})
runoob.html 中:
{%if num > 90 and num <= 100 %}
优秀
{% elif num > 60 and num <= 90 %}
合格
{% else %}
一边玩去~
{% endif %}
2.4 循环语句
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
例如:views.py 中:
def runoob(request):
views_list = ["菜鸟教程","菜鸟教程1","菜鸟教程2","菜鸟教程3",]
return render(request, "runoob.html", {"views_list": views_list})
runoob.html 中:
{% for i in views_list %}
{{ i }}
{% endfor %}
感觉如果能学一下 html 语言,会比较有帮助。
2.5 {% empty %}:循环为空时执行
例如:
{% for i in listvar %}
{{ forloop.counter0 }}
{% empty %}
空空如也~
{% endfor %}
标签:py,num,views,python,runoob,request,django,html,模板 来源: https://www.cnblogs.com/luyi07/p/15810680.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。