首页 > 其他分享 >Django博客开发教程:体验django模板

Django博客开发教程:体验django模板

时间:2023-08-08 15:25:15浏览次数:41  
标签:index sitename list Django url html django 模板

上面我们有说过,用户发送请求的时候,视图会返回一个响应,响应可以是一个重定向,一个404错误,一个XML文档,一张图片或者是一个HTML内容的网页。前面几个返回的信息比较有限,我们重点更多是放在HTML内容的网页。我们把这样的页面按规范写好,然后都放在项目根目录下的templates文件夹里,这样的页面,我们称之为"模板"页面。

Django做为一个WEB框架,需要一种很便利的方法去动态生成HTML网页,因为有了模板这个概念。模板页面包含一些基础的HTML代码和一些特殊的语法,这些特殊的语法主要用于如何将数据动态的插入HTML页面中。

这些特殊的语法我们把它做变量、标签。变量是模板中最基本的组成单位。这些模板变量由视图函数生成的,然后通过上下文传递到模板里,然后由浏览器渲染出来。

上面的都是理论, 我们不管它。我们直接说如何在模板里调用视图函数传过来的变量。这些变量有很多种类型,也就是Python支持的数据类型比如:普通变量、列表、字典等。

在这之前我们要先设置好模板路径,把这个路径在settings里设置好,不然就没法访问我们的模板目录,之前我在文章:基础配置 里已经设置好了,下面我们直接使用就行。更多关于settings的配置可以查看文章:全局配置settings详解

一、变量

1、在文件myblog/urls.py里设置一个URL:

myblog/urls.py
urlpatterns = [
    ...
    path('', views.index), 
    #把原来的views.hello修改成views.index  ''留空,表示为首页
    ...
]

2、在文件blog/views.py里添加一个视图函数:

blog/vews.py

#添加一个函数
def index(request):
    #添加两个变量,并给它们赋值
    sitename = 'Django中文网'
    url = 'www.django.cn'
    #把两个变量封装到上下文里
    context = {
        'sitename': sitename,
        'url':url,
    }
    #把上下文传递到模板里
    return render(request,'index.html',context)

3、在项目根目录下templates文件夹里新建一个文件index.html,输入如下内容:

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MyBlog</title>
</head>
<body>
<h3>网站名:{{ sitename }}</h3>
<h3>域名:{{ url }}</h3>
</body>
</html>

然后启动项目,在浏览器里访问 http://127.0.0.1:8000   就可以查看到我们在视图函数里我们设置的内容。

1.jpg

代码里的{{ sitename }}和{{ url}}就是模板变量,变量的数据类型是字符串或整形。在Django模板中,变量需要用{{ 变量名}}来显示。

二、列表

1、在视图函数index里添加如下代码:

blog/views.py
def index(request):
    sitename = 'Django中文网'
    url = 'www.django.cn'
    #新加一个列表
    list=[
        '开发前的准备',
        '项目需求分析',
        '数据库设计分析',
        '创建项目',
        '基础配置',
        '欢迎页面',
        '创建数据库模型',
    ]
    context = {
        'sitename': sitename,
        'url':url, 
        'list':list, #把list封装到context
    }
    return render(request,'index.html',context)

2、在模板文件index.html添加如下代码:

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MyBlog</title>
</head>
<body>
<h3>网站名:{{ sitename }}</h3>
<h3>域名:{{ url }}</h3>
{#新下面的代码#}
<div>
    <ul>
    <h4>Blog教程目录:</h4>
        {% for list in list  %}
        <li>{{ list }}</li>
        {% endfor %}
    </ul>
</div>
</body>
</html>

然后我们在浏览器里刷新页面,显示如下:

2.jpg

新加代码里{% for list in list  %}  的{% for %}属于Django模板的内置标签,它可以遍历输出变量的内容。

三、字典

1、在视图函数里添加如下代码:

blog/views.py

def index(request):
    ....
    #在来的基础上新加一个字典
    mydict={
        'name': '吴秀峰',
        'qq': '445813',
        'wx': 'vipdjango',
        'email': '[email protected]',
        'Q群': '10218442',
    }
    context = {
        ...
        #把mydict封装到上下文
        'mydict':mydict,
    }
    return render(request,'index.html',context)

2、在模板文件index.html添加如下代码:

templates/index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MyBlog</title>
</head>
<body>
...
<!-- 新加如下代码 -->
<div>
    <ul>
    <h4>Blog教程作者信息:</h4>
        {% for key,values in mydict.items  %}
        <li>{{ key }}:{{ values }}</li>
        {% endfor %}
    </ul>
</div>
</body>
</html>

新加的代码里,{% for key,values in mydict.items  %} 是遍历输出字典里的 key和values的内容。

我们刷新页面,就能看到新的效果:

3.jpg

上面的就是在模板里调用变量、列表、字典的方法。当然,模板里还有许多内置的标签和过滤器。这里就不一一介绍。后面我们用上的时候,我会做特别的提醒。

上述代码我已经上传到服务器,请大家自行下载查看:

模板体验代码.zip

标签:index,sitename,list,Django,url,html,django,模板
From: https://www.cnblogs.com/yoloooo/p/17614400.html

相关文章

  • Django博客开发教程:体验django模板,
    上面我们有说过,用户发送请求的时候,视图会返回一个响应,响应可以是一个重定向,一个404错误,一个XML文档,一张图片或者是一个HTML内容的网页。前面几个返回的信息比较有限,我们重点更多是放在HTML内容的网页。我们把这样的页面按规范写好,然后都放在项目根目录下的templates文件夹里,这样的......
  • ASP.NET Core 中的显示和编辑器模板
    显示模板和编辑器模板指定了自定义类型的用户界面布局。考虑下列 Address 模型:C#复制 publicclassAddress{publicintId{get;set;}publicstringFirstName{get;set;}=null!;publicstringMiddleName{get;set;}=null!;publicst......
  • Django博客开发教程:URL与视图函数
    在讲URL与视图函数之前我们先给大家简单介绍一下用户访问网站的流程。我们访问一个网站的时候,一般先打开浏览器,然后在浏览器的地址栏里输入一个网址,也就是URL,然后回车,我们就可以在浏览器里看到这个网址返回的内容。这是我们能看得见的过程,还有一些我们看不见的过程,那就是:当我们在......
  • Django博客开发教程:使用富文本编辑器添加数据
    在Djangoadmin后台添加数据的时候,文章内容文本框想发布一篇图文并茂的文章需就得手写Html代码,这十分吃力,也没法上传图片和文件。这显然不是我等高大上程序猿想要的。为提升效率,我们可以使用富文本编辑器添加数据。支持Django的富文本编辑器很多,这里我推荐使用DjangoUeditor,Uedi......
  • Django博客开发教程:用Admin管理后台管理数据
    上节我们我们把数据库迁移到数据库里去了,那么现在我们数据库里是个什么样的情况呢?我们点击Pycharm右上角的Database,然后在网站项目里选中我们的数据库文件db.sqlite3,把它拖到Database框里。然后点击db,就可以查看到我们的网站数据库,我们可以对数据进行增、删、改、查操作。更多......
  • Django博客开发教程:基础配置
    创建项目之后,我们需要对项目进行最基础的配置。这些配置是我们做项目的时候必须要配置的,所以我们先提前配置好。我们打开myblog目录下的settings.py文件。一、设置域名访问权限myblog/settings.pyALLOWED_HOSTS = []      #修改前ALLOWED_HOSTS = ['*']   #修改......
  • 1-3 多态、模板
    1多态多态分两类:静态多态:函数重载和运算符重载,即复用函数名动态多态:派生类和虚函数来实现运行时多态区别:静态多态在编译阶段确定函数地址动态多态在运行阶段确定函数地址,根据传入的对象不同确定具体的执行函数动态多态满足条件:首先要有继承关系子类要重写父类的虚......
  • Django 之日志配置
    Django之日志配置日志作为服务的,排查故障分析性能及问题的重要“帮手”,是服务必不可少的。 配置日志定义日志记录器定义了三个日志记录器,分别针对Django、自定义应用程序和自定义库。每个日志记录器都有不同的日志级别和处理器,例如控制台和文件处理器。Django日志记......
  • 背包问题的一些模板
    01背包问题:无优化for(inti=1;i<=n;i++){for(intc=0;c<=m;c++){f[i][c]=f[i-1][c];if(c>=w[i])f[i][c]=max(f[i][c],f[i-1][c-w[i]]+v[i]);}}一维数组优化:for(inti=1;i<=n;i++){for(intc=m;c>=0;c--){......
  • 6模板语法
    创建一个vue3项目npminitvue@latest启动cdvue-demonpminstallnpmrundev修改App.vue这时候打开时空白再修改<template>{{msg}}</template><script>exportdefault{data(){return{msg:"神奇的语法"}}}</script>......