当前位置: 首页 > news >正文

山东淄博网站建设公司百度推广怎么赚钱

山东淄博网站建设公司,百度推广怎么赚钱,网站为什么做站外推广,java开发工程师证书三、Django模板 模板Templates 在Django框架中,模板是可以帮助开发者快速生成呈现给用户页面的工具 模板的设计方式实现了我们MVT中VT的解耦(M:Model,V:View,T:Template),VT有着N:M的关系,一个V可以调用任意T&#xf…

三、Django模板

模板Templates

在Django框架中,模板是可以帮助开发者快速生成呈现给用户页面的工具

模板的设计方式实现了我们MVT中VT的解耦(M:Model,V:View,T:Template),VT有着N:M的关系,一个V可以调用任意T,一个T可以供任意V使用

模板处理分为两个过程

  • 加载HTML
  • 渲染数据 render()

模板主要有两个部分

  • HTML静态代码

  • 模板语言,动态插入的代码段(挖坑,填坑) {{ name }}

  • 模板中的动态代码段除了做基本的静态填充,还可以实现一些基本的运算,转换和逻辑

静态页面: 页面数据是本地固定的
动态页面: 页面数据来源于后台服务器

模板中的变量:视图传递给模板的数据,遵守标识符规则

​ 语法:{{ var }}
​ 如果变量不存在,则插入空字符串

方法不能有参数

​ {{ str }}

​ {{ str.upper }} # 不能带括号

​ {{ str.isdigit }}

​ {{ dict.key }}

列表,使用索引,不允许使用负索引

​ items = [‘apple’ ‘bananas’]

{{ items.1 }}

  • MVC软件设计模式: Model(数据库),View(界面),Controller(控制器,相当于Django的视图函数)
  • MVT : M:Model(数据库),V:View视图函数,T:Template(界面)

模板中的标签

语法: {{% tag %}}

作用:

  1. 加载外部传入的变量
  2. 在输出中创建文本
  3. 控制循环或逻辑
if 语句:格式: if单分支{% if表达式 %} 语句   {% endif %}if双分支{% if表达式 %} 语句 {% else %} 语句2  {% endif %}if多分支{% if表达式 %} 语句 {% elif表达式 %} 语句2 {% else %} 语句3 {% endif %}判断true或者false(可以使用and or not in,语法与python类似){% if tody_is_weekend %}\<p>Welcome to the weekend!!!\</p>{% endif %}使用 in 和 not in{% if user in users %}\<p>User已经存在</p>{% endif %}
for 语句{% for 变量 in 列表	%}语句1{% empty %}语句2{% endfor %}当列表为空或者不存在的时候,执行empty后的语句===================forloop.counter示例================={% forloop.counter %} 表示当前是第几次循环,从1开始
{% for item in todo_list %}<p> {{forloop.counter}} : {{ item }}	</p>
{% endfor %}{{ forloop.counter0 }}表示当前是第几次循环,从0开始{{ forloop.revcounter }}表示当前是第几次循环,倒着数数,到1停{{ for1oop.revcounter }}表示当前第几次循环,倒着数,到0停{{ forloop.first }}是否是第一个 布尔值{% for object in objects %}{% if forloop.first %}<li class="first">{{ object }}</li>{% else %}<li>{{ object }}</li>{% endif %}
{% endfor %}{% for link in links %}{{ link }}{% if not forloop.last %}|{% endif %}
{% endfor %}===================forloop.parentloop示例=================
{% for country in countries %}
<table>{% for city in country.city_list %}<tr><td>Country #{{ forloop.parentloop.counter }}</td><td>City #{{ forloop.counter }}</td><td>{{ city }}</td></tr>{% endfor %}
</table>
{% endfor %}
注释:单行注释{# 被注释掉的内容 #}多行注释{% comment %} 多行内容 {% endcomment %}
过滤器:{{ var|过滤器 }}作用: 在变量显示前修改add:{{ value|add:2 }}没有减法过滤器,但加法里可以加负数:{{ value|add:-2 }}
lower:{{ name|lower }}
upper:{{ my_list|fisrt|upper }} 将my_list的第一个值变成大写
截断:{{ bio|truncatechars:30 }}过滤器可以传递参数,参数需要使用引号引起来,比如join:{{ students|join:'=' }}默认值: default,格式{{ var|default:value }}如果变量没有被提供或者为False,空,会使用默认值根据指定格式转换日期为字符串,处理时间的就是针对date进行的转换{{ dateVal | date:'y-m-d'}}
HTML转义:将接收到的数据当成普通字符串处理还是当成HTML代码来渲染的一个问题渲染成html:{{ code|safe }}
关闭自动转义 {% autoescape off %}code{% endautoescape %}
打开自动转义转义{% autoescape on %}code{% endautoescape %}
模板继承:block:{% block XXX %}code{% endblock %}extends 继承,写在开头位置{% extends'父模板路径'%}include:加载模板进行渲染{% include'模板文件'%}{{ block.super }}:获取父模板中block中的内容

在Django模板中使用jinja2模板引擎

Jinja2是之前我们在Flask框架讲过的一个模板引擎,是模仿Django默认模板引擎基础上开发的,比Django模板引擎性能更好,功能更全.

jinja2宣称比django默认模板引擎快10-20倍。Django也支持jinja2

1.安装jinja2模块
pip install jinja2
2.在settings.py所在的目录中创建jinja2_env.py文件,并写入以下内容
from django.templatetags.static import static
from django.urls import reverse
from jinja2 import Environmentdef environment(**options):env = Environment(**options)env.globals.update({'static': static,'url': reverse,})return env
3.修改项目的settings.py文件

原本的不能删除

TEMPLATES = [# 使用jinja2模板引擎{'BACKEND': 'django.template.backends.jinja2.Jinja2','DIRS': [],'APP_DIRS': True,'OPTIONS': {# 这里要添加environment变量,指向自定义的jinja2环境,DjangoPro2项目目录下的jinja2_env.py文件里面的environment函数"environment": "DjangoPro2.jinja2_env.environment",'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},# 原来自带的Django模板引擎{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],'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',],},},
]
4.在修改Pycharm中settings的模板语言为Jinja2

创建html文件,使用Jinja2语法

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Jinja2模板语言</title>
</head>
<body><h2>Jinja2模板语言</h2><hr><p>name = {{ name }}</p>{% for n in name %}<b>{{n}}</b>{% endfor %}<hr>{% for n in name %}<div>{{loop.index}} : {{n}}</div>{% endfor %}{# Jinja2是可以使用带括号的函数调用的 #}{% for i in range(1, 10) %}<div>{{i}}</div>{% endfor %}</body>
</html>

注意: 这只是一个简单的Jinja2模板语法示例,要使用更多语法,可以查阅以下资料

  • 深入剖析Jinja2语法:高效开发的关键技巧_jinja2 函数-CSDN博客
  • 欢迎来到 Jinja2 — Jinja2 2.7 documentation
http://www.mnyf.cn/news/52762.html

相关文章:

  • 网站开发计划书淘宝定向推广
  • 东营网上房地产西安seo关键词推广
  • 食品网站模板百度小说风云榜排行榜官网
  • b2b电子商务网站有哪些特点珠海网站设计
  • 网站建设公司有收录入口在线提交
  • 网站调优技能拉新工作室在哪里接项目
  • 棋牌类网站怎么做淘宝指数官网的网址
  • 一个帮你赚钱的网站是谁做的广告博客网
  • 做交易网站存在什么风险链接制作
  • 餐饮网站建设方案书怎么自己开发网站
  • php建立网站友情链接吧
  • 手机开网站seo技术建站
  • 怎样优化网站软文广告经典案例600
  • wap网站下载seo培训价格
  • 百度app下载官方免费下载最新版东莞百度快速优化排名
  • 学习网页设计的网站百度一下了你就知道官网
  • 收录网站是怎么做的免费b站推广短视频
  • 做网站如何提需求企业seo整站优化方案
  • 高级网站开发工程师工资微博营销的特点
  • 做海购的网站萝卜建站
  • 在网站里文本链接怎么做企业网络营销策划方案范文
  • 重庆网站建设招标中国软文网官网
  • 建设好网站的在线沟通功能百度指数官网数据
  • 专门做护肤品网站线上推广工作内容
  • 重庆网站制作那家好优化网站首页
  • 苍南县网站集约化建设网页推广方案
  • 天猫网站建设的理由太原网站关键词排名
  • 交易网站seo怎么做产品营销策划
  • c 视频网站开发做推广app赚钱的项目
  • 电影网站开发毕业论文近期重大新闻