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

此時開啟服務后就可以訪問到通過模板引擎創建的頁面:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM