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 项目。

python+opencv简谱识别音频生成系统源码含GUI界面+详细运行教程+数据 一、项目简介 提取简谱中的音乐信息,依据识别到的信息生成midi文件。 Extract music information from musical scores and generate a midi file according to it. 二、项目运行环境 python=3.11.1 第三方库依赖 opencv-python=4.7.0.68 numpy=1.24.1 可以使用命令 pip install -r requirements.txt 来安装所需的第三方库。 三、项目运行步骤 3.1 命令行运行 运行main.py。 输入简谱路径:支持图片或文件夹,相对路径或绝对路径都可以。 输入简谱主音:它通常在第一页的左上角“1=”之后。 输入简谱速度:即每分钟拍数,同在左上角。 选择是否输出程序中间提示信息:请输入Y或N(不区分大小写,下同)。 选择匹配精度:请输入L或M或H,对应低/中/高精度,一般而言输入L即可。 选择使用的线程数:一般与CPU核数相同即可。虽然python的线程不是真正的多线程,但仍能起到加速作用。 估算字符上下间距:这与简谱中符号的密集程度有关,一般来说纵向符号越稀疏,这个值需要设置得越大,范围通常在1.0-2.5。 二值化算法:使用全局阈值则跳过该选项即可,或者也可输入OTSU、采用大津二值化算法。 设置全局阈值:如果上面选择全局阈值则需要手动设置全局阈值,对于.\test.txt中所提样例,使用全局阈值并在后面设置为160即可。 手动调整中间结果:若输入Y/y,则在识别简谱后会暂停代码,并生成一份txt文件,在其中展示识别结果,此时用户可以通过修改这份txt文件来更正识别结果。 如果选择文件夹的话,还可以选择所选文件夹中不需要识别的文件以排除干扰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值