当前位置: 首页 > news >正文

Django介绍

image-20220923112507434

一、介绍

Django是Python语言中的一个Web框架,Python语言中主流的web框架有Django、Tornado、Flask 等多种

优势:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等功能,是一个全能型框架,拥有自己的Admin数据管理后台,第三方工具齐全,性能折中

缺点:功能太多,数据分表复杂,高性能扩展复杂、重量级

Django 是开源的

二、安装

python3.8+

pip安装:在cmd命令窗口中,输入:

pip install django==4.1.1

三、文档

官方文档的链接在:https://docs.djangoproject.com

提示

  • 点击页面右下角的 language 按钮,可以选择 zh-hans ,显示中文,只有部分页面有中文翻译
  • 点击页面右下角的Documentation version,可以选择版本

四、专业词汇

image-20220923114135730

4.1、B/S和C/S

Django是用于开发B/S架构的软件的,软件主要分为B/S架构和C/S架构:

  • B/S:全称Browser/Server(浏览器/服务器)
  • C/S:全称Client/Server(客户端/服务器)

image-20220918161553466

4.2、MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进个性化定制界面及用户交互的同时,不需要重新编写业务逻辑

  • M:管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)。
  • V: 负责把数据格式化后呈现给用户。
  • C: 接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带。

image-20220915232625677

4.3、MTV

Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式:

  • M: 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
  • T: 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
  • V: 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。

image-20220915233323335

4.4、ORM

ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写

image-20220918154228986

ORM 把数据库映射成对象

image-20220918154956326

举例来说,下面是一行 SQL 语句。

SELECT id, first_name, last_name, phone, birth_date, sex
FROM persons 
WHERE id = 10

程序直接运行 SQL,操作数据库的写法如下。

res = db.execSql(sql);
name = res[0]["FIRST_NAME"];

改成 ORM 的写法如下。

p = Person.get(10);
name = p.first_name;

一比较就可以发现,ORM 使用对象,封装了数据库操作,因此可以不碰 SQL 语言。开发者只使用面向对象编程,与数据对象直接交互,不用关心底层数据库

4.4.1、ORM 有下面这些优点

  • 数据模型都在一个地方定义,更容易更新和维护,也利于重用代码
  • ORM 有现成的工具,很多功能都可以自动完成,比如数据初始化、事务等等
  • 它迫使你使用 MVC 架构,ORM 就是天然的 Model,最终使代码更清晰
  • 基于 ORM 的业务代码比较简单,代码量少,语义性好,容易理解
  • 不必编写性能不佳的 SQL

4.4.2、ORM 也有很突出的缺点

  • ORM 库不是轻量级工具,需要花很多精力学习和设置

  • 对于复杂的查询,ORM 要么是无法表达,要么是性能不如原生的 SQL

  • ORM 抽象掉了数据库层,开发者无法了解底层的数据库操作,也无法定制一些特殊的 SQL

http://www.lryc.cn/news/290089.html

相关文章:

  • 【idea】几个不错的idea插件让我码速又快了
  • LabVIEW直流电机转速检测与控制
  • ༺༽༾ཊ—Unity之-05-抽象工厂模式—ཏ༿༼༻
  • 力扣面试题02.07-链表相交
  • Java集合-ArrayList
  • 数据结构·单链表经典例题
  • Linux常用指令的整合
  • 阿里云centos安装mysql,并修改初始密码
  • 【JavaScript基础入门】04 JavaScript基础语法(二)
  • 标准库中的string类(下)——“C++”
  • 如何使用Docker部署火狐浏览器并实现无公网ip远程访问
  • 瑞_数据结构与算法_AVL树
  • BGP同步规则
  • Linux命令-apt-key命令(管理Debian Linux系统中的软件包密钥)
  • Python根据Excel表进行文件重命名
  • 【UVM源码】UVM Config_db机制使用总结与源码解析
  • 群辉开启WebDav服务+cpolar内网穿透实现移动端ES文件浏览器远程访问本地NAS文件
  • 通过mybatis拦截器给sql执行加一个耗时监控
  • 构建知识图谱:从技术到实战的完整指南
  • STM32的分类和选型
  • python使用read_sql与to_sql读写数据库
  • 【ArcGIS微课1000例】0096:dem三维块状表达(层次地形模型)
  • OJ_糖果分享游戏
  • sqli-lbs靶场搭建
  • SharedPreferences卡顿分析
  • 64、ubuntu使用c++/python调用alliedvisio工业相机
  • 网络端口与 IP 地址有什么区别?
  • C语言标准的输入输出
  • C++ 类与对象(上)
  • 如何配置MacLinuxWindows环境变量