zoukankan      html  css  js  c++  java
  • MVT模型<->前后端不分离&前后端分离&模板引擎

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

    前后端不分离特点:

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

    前后端分离的特点:

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

    二、MVT模型

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

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

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

    三、模板引擎

    1、创建模板目录

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

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

    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)
    ]

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

  • 相关阅读:
    poj 2942 Knights of the Round Table(无向图的双连通分量+二分图判定)
    Java序列化的几种方式
    Android 四大组件学习之Service六
    cursor:pointer的意思
    JSP中<base href="<%=basePath%>">的作用
    一篇让Java程序猿随时可以翻看的Oracle总结
    史上最全的javascript知识点总结,浅显易懂。
    史上最全的HTML、CSS知识点总结,浅显易懂。
    css学习归纳总结
    Web前端开发Chrome插件
  • 原文地址:https://www.cnblogs.com/xiaogongjin/p/13173634.html
Copyright © 2011-2022 走看看