Django前后端不分离&前后端分离&模板引擎

一、前后端不分离与前后端分离的比较

前后端不分离特点:

  • 后端需控制数据的展示
  • 前后端不分家,耦合严重
  • 返回的是HTML页面,适应性、拓展性差
    • 只能用于浏览器,其它终端不匹配

前后端分离的特点:

  • 当前主流
  • 后端只对数据进行处理,只提供数据
  • 前端效率、页面好不好看,全由前端负责,前后端完全独立
  • 解耦合
  • 前后端同时开发,缩小业务上线周期
  • 绝大多数情况下,前端发送json格式的参数,后端同样以json格式的数据返回
    • 适应性、拓展性好
    • 适合多终端运行同一套接口(PC、APP、小程序等)

二、MVT模型

mvt模型属于Django中前后端不分离的主流开发模型,用一张图进行描述:

Django前后端不分离&前后端分离&模板引擎

在java开发中也有MVC,MVT与MVC的区别如下:

  • M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理
  • V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回响应
  • T全拼为Template,与MVC中的V功能相同,负责构造要返回的html页面

三、模板引擎

1、创建模板目录

直接在项目根目录下创建templates目录,如果是通过Django方式创建的项目会自带该目录,无需创建

Django前后端不分离&前后端分离&模板引擎

在templates目录下再创建一个demo.html文件

Django前后端不分离&前后端分离&模板引擎

2、设置模板引擎

在全局配置模块settings.py下找到TEMPLATES字段:

TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],
        ‘APP_DIRS‘: False,
        ‘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‘:指定的模板引擎,常用的模板引擎还有DjangoTemplates、Jinja2
  • ‘DIRS‘:指定html页面或者html模板存放的路径,可以添加多个路径,添加的路径使用os.path.join方法与BASE_DIR进行路径拼接,不建议使用“+”号拼接路径
  • ‘APP_DIRS’:指定子应用下是否有html页面,默认为True

3、创建视图

from django.shortcuts import render


def page(request):

    return render(request, template_name=‘demo.html‘)
  • render函数主要用于渲染模板生成一个html页面
  • 第一个参数为request
  • 第二个参数为在templates目录下的文件名
  • 第三个参数为context,只能传字典,这里可以使用locals()函数,它能将当前命名空间中的所有变量信息,存放在一个字典中

4、配置路由

from django.contrib import admin
from django.urls import path
from projects.views import page

urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(‘page/‘, page)
]

此时开启服务后就可以访问到通过模板引擎创建的页面:

Django前后端不分离&前后端分离&模板引擎

相关推荐