Pycharm使用Django模板

Pycharm使用Django模板快乐学习Django模板1.模板应用实例2.模板继承1.模板应用实例1.在FirstDjango目录下创建templates目录并建立hello.html文件。2.编辑settings.py文件,向Django说明模板文件的路径,修改TEMPLATES中的DIRS,如下图所示。代码如下所示:TEMPLATES=[{‘BACKEND’:’django.template.backends.django.DjangoTemplates’,’DIRS

快乐学习Django模板

注:刚开始学Python,很多东西都不懂,参考了很多博主的博客,记录下来以防自己忘记。若是有错误的地方,欢迎大家指正,谢谢。

1.模板应用实例

1.在FirstDjango目录下创建templates目录并建立hello.html文件。
在这里插入图片描述
2.编辑settings.py文件,向Django说明模板文件的路径,修改TEMPLATES中的DIRS,如下图所示。
在这里插入图片描述
代码如下所示:

TEMPLATES = [
    { 
   
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [str(BASE_DIR/'templates').replace('\\','/')],
        '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',
            ],
        },
    },
]

3.编辑views.py文件,增加一个新的对象,用于向模板提交数据。
在这里插入图片描述
代码如下所示

from django.shortcuts import render
def hello(request):
    context = { 
   }
    context['hello'] = 'Hello World!'
    return render(request,'hello.html',context)

注:这里使用render来代替之前使用的HTTPResponse。render使用了一个字典context为参数,字典context的键值’hello’会对应模板中的变量‘{
{hello}}’

4.编辑hello.html,添加<h1>{
{hello}}</h1>
代码。
在这里插入图片描述
此时这里的{
{hello}}对应值就是render中‘hello’键对应的值即’Hello World!’,因此会在页面中展示一级标题的’Hello World!’。
在这里插入图片描述

2.模板继承

1.首先创建原始文件,在项目的templates目录中添加base.html文件,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% block top %}
<h1>Hello World!</h1>
{% endblock top %}
<p>Django测试</p>
{% block mainbody %}
<p>orginal</p>
<p>Welcome to NewYork</p>
{% endblock mainbody %}
</body>
</html>

在以上代码中,block标签是可以被继承者们替换掉的部分,利用{%block%}标签告诉模板引擎,字幕版可以重载这部分内容。

2.继承原始文件则需要在hello.html中继承base.html,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% extends 'base.html'%}
</body>
</html>

3.此时测试查看结果,说明’hello.html’继承了’base.html’中的所有内容并显示。
在这里插入图片描述
4.子模板还可以重写父模板的内容,修改’hello.html’代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% extends 'base.html'%}
{% block top %}
<h1>Nice to meet you</h1>
{% endblock top %}
{% block mainbody %}
<p>Can I help you? sakura</p>
{% endblock mainbody %}
</body>
</html>

对比此时的’hello.html’和’base.html’,发现在子模板中存在top和mainbody并且里面还有内容,就是对父模板的内容进行重写,测试结果如下:
在这里插入图片描述
5.子模板不仅可以重写父模板的内容,还可以在父模板的内容上添加新的内容,通过{
{block.super}}
来获取父模板的内容,直接在相应位置添加即可。
修改’hello.html’的内容,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% extends 'base.html'%}
{% block top %}
<h1>Nice to meet you</h1>
{
  
  {block.super}}
{% endblock top %}
{% block mainbody %}
<p>{
  
  {block.super}}Can I help you? sakura</p>
{% endblock mainbody %}
</body>
</html>

测试结果
在这里插入图片描述

今天的文章Pycharm使用Django模板分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/25303.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注