您的位置:首页 > 房产 > 建筑 > 谁能给个网址免费的_黑客网站网址大全_神秘网站_搜多多搜索引擎入口

谁能给个网址免费的_黑客网站网址大全_神秘网站_搜多多搜索引擎入口

2025/1/23 23:34:19 来源:https://blog.csdn.net/mecende/article/details/143177195  浏览:    关键词:谁能给个网址免费的_黑客网站网址大全_神秘网站_搜多多搜索引擎入口
谁能给个网址免费的_黑客网站网址大全_神秘网站_搜多多搜索引擎入口

启动模版

安装jinja2

pip install jinja2

配置setting

TEMPLATES中添加配置

    {'BACKEND': 'django.template.backends.jinja2.Jinja2','DIRS': [os.path.join(BASE_DIR,'jinja2')],  #模版在项目中的所在位置}

template中各项的含义

这个配置项中模版自上而下加载,重名优先使用上面的

TEMPLATES = [{# 配置哪一种模版'BACKEND': 'django.template.backends.django.DjangoTemplates',   # django默认的自带模版# 存放模版的目录位置# 'DIRS': [BASE_DIR / 'templates']'DIRS': [os.path.join(BASE_DIR,'templates')]    # 用os拼接,找到模版所在位置,# 模版应用范围,True为全局(整个工程下)'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',],},},{'BACKEND': 'django.template.backends.jinja2.Jinja2','DIRS': [os.path.join(BASE_DIR,'jinja2')],  #模版在项目中的所在位置}
]

新建jinja2的模版目录

根据新配置的 'DIRS': [os.path.join(BASE_DIR,'jinja2')],新建jinja2文件夹

这样使用在视图中使用render的时候就可以直接找到jinja2目录下的文件了

def go_jinja2(request):return render(request,"jinja2_home.html")

编辑模版

变量

模版中的变量用{{}}包裹{{变量名}},插值表达式

传入模版的参数可以是字符,数字,对象,列表

<body>
<h1>h1标签</h1>
<p>用户名:{{ username }}</p>
<p>年龄:{{ age }}</p>
<p><img src="{{ img_url }}" alt=""></p>
<p>用户列表</p>
</body>

模版标签

用{%%}包裹循环或判断

<body>
<h1>h1标签</h1>
<p>用户名:{{ username }}</p>
<p>年龄:{{ age }}</p>
<p><img src="{{ img_url }}" alt=""></p>
<p>用户列表</p>
{% for user in list_users %}
<p>{{ user.username }}&emsp;{{ user.age }}</p>
{% endfor %}
</body>

循环:

循环 
{% for user in list_users %}        {% endfor %}
字典循环
{% for key,values in data.items %}         {% endfor %}
重复循环(循环嵌套)
{% cycle "row1" "row2" %}
循环中的变量
forloop.first如果是第一次迭代,为True
forloop.last如果是最后一次迭代,为True
forloop.counter0计数器,从0开始
forloop.counter计数器,从1开始

eg:

def tag(request):list_user = [{"name": "ikun1","age": 2.5},{"name": "ikun2","age": 2.5,"sex":"沃尔玛购物袋"}]return render(request,"tag.html",{"list_user":list_user})
<head><meta charset="UTF-8"><title>Title</title><style>.row1{color: red;}.row2{color: green;}</style>
</head>
<body>
<h1>用户列表</h1>
{% for i in list_user %}<p class="{% cycle 'row1' 'row2' %}">第{{ forloop.counter }}个用户</p>{% for key,value in i.items %}<p>{{ key }} = {{ value }}</p>{% endfor %}
{% empty %}<p>无</p>
{% endfor %}
</body>

判断

{% if 条件 %}        {% endif %}
<body>  {% if user.role == 'admin' %}  <p>Hello, Admin!</p>  {% elif user.role == 'editor' %}  <p>Hello, Editor!</p>  {% else %}  <p>Hello, Regular User!</p>  {% endif %}  
</body> 

url标签

可以获取静态文件,解析静态文件 

setting中设置好资源目录和链接

STATIC_URL = "/static/"
STATIC_ROOT = [os.path.join(BASE_DIR,"static")]
# STATICFILES_DIRS = [os.path.join(BASE_DIR,"static")]
<img src="{% static 'images/ikun.jpg' %}" alt="">

 时间

见官网

 内置模板标签和过滤器 | Django 文档 | Django

eg:

{% now 'j S F Y H:i:s' %}

 注释

{# html注释在源代码中能看到内容,标签注释在编译时就将注释内容去掉了 #}

 过滤器

首先在模块下新建一个叫templatetags的包

在包下新建过滤器文件

from django import templateregister = template.Library()
# 注册过滤器
@register.filter(name='fmt_uname')# 用户名格式化
def fmt_uname(value):return "{}***".format(value[0])

这样过滤器就创建好了

测试

def mine_filter(request):username = "三"return render(request, "mine_filter.html", {"username": username})
<p>{{ username | fmt_uname }}</p>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com