Django基础(一)MVT 模式与 Django 框架

一、MVT 模式简介

1. 浏览器访问页面的完整流程

  1. 用户在浏览器输入网址或搜索内容,按回车。

  2. 浏览器将请求发送到服务器。

  3. 服务器处理请求,返回响应数据。

  4. 浏览器接收响应,将页面内容显示出来。

用户只需操作浏览器,不关心服务器细节;Web 开发人员则负责开发服务器端。


2. MVT 模式的工作流程

以访问课程页面为例:

  • 浏览器向服务器发送请求(包含 URL、浏览器信息、Cookie 等)。

  • 服务器解析请求,分配给对应的视图函数(View)处理。

  • 视图函数如需数据,会查询数据库(通过模型类Model)。

  • 数据库返回查询结果给视图函数。

  • 视图函数将数据和模板(Template)结合,生成响应(Response)返回浏览器。

  • 浏览器解析响应,显示页面。

MVT 各部分作用
  • Model(模型):与数据库交互,负责数据的获取和存储。

  • View(视图):处理业务逻辑,接收请求、调用模型、返回响应。

  • Template(模板):负责页面展示,包含 HTML、CSS、JS 等静态资源。

MVT 模式是 Django 的核心设计思想,三者协作完成 Web 页面动态展示。


二、Django 框架简介

  • Django:用 Python 编写的开源 Web 框架,采用 MVT 架构。

  • 2005 年开源,最初用于新闻网站开发。

  • 目标:让开发"流程复杂、依赖数据库"的网站变得简单。

  • 遵循 DRY 原则(Don't Repeat Yourself),各组件低耦合。

Django 核心功能

  • ORM(对象关系映射):用类定义数据表,操作数据库更简单。

  • URL 分发器:支持正则和简洁路径,灵活分配请求。

  • 视图系统:处理请求与响应。

  • 模板系统:内置 Jinja2,方便动态页面渲染。

  • 开发服务器:轻量独立,便于开发测试。

  • 缓存框架:多种缓存方式,提升性能。

  • 中间件:可在请求处理各阶段插入自定义逻辑。

内置实用应用

  • 可扩展的认证系统

  • 动态站点管理后台

  • 灵活的评论系统

  • CSRF 防护

  • 标记语言模板库


三、Python Web 框架对比

  • Flask:轻量、灵活,插件丰富,适合小型网站。

  • Tornado:高性能,支持异步,适合高并发场景。

  • Bottle:极简,仅依赖标准库,适合微型项目。

  • Aiohttp:基于 asyncio,支持异步,框架较新。

  • 结论:小型网站用 Flask,大型网站用 Django。


四、linux环境Django 安装步骤

  1. 更新 pip

    复制代码
    sudo pip install -U pip
  2. 安装 virtualenv 并创建虚拟环境

    复制代码
    cd /home/project
    sudo pip install -U virtualenv
    virtualenv -p python venv
  3. 进入虚拟环境并安装 Django

    复制代码
    source venv/bin/activate
    pip install django==3.1.4
    pip freeze | grep -i django
  4. 安装常用工具包

    • 先安装 mysqlclient 依赖

      复制代码
      sudo apt update
      sudo apt install -y libmysqlclient-dev
    • 再安装 ipython 和 mysqlclient

      复制代码
      pip install ipython mysqlclient
    • 激活虚拟环境,检查已安装包

      复制代码
      source venv/bin/activate
      pip freeze

五、本节总结

  • 掌握了 MVT 模式的设计思路和三大核心组件的协作关系。

  • 了解了 Django 框架的核心功能和优势。

  • 学会了在虚拟环境中安装和配置 Django。


下一步:学习如何用 Django 创建 Web 项目。

相关推荐
databook8 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar9 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780519 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_9 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机16 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机17 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机17 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机17 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i17 小时前
drf初步梳理
python·django
每日AI新事件17 小时前
python的异步函数
python