小酌Django3——HTTP/URL/ORM简述

2023-10-28

小酌Django3——HTTP/URL/ORM简述

HTTP

Hyper Text Transfer Protocol(超文本传输协议):

  • 是客户端与服务端请求和应答的标准(TCP),封装了Web服务的整个过程;
  • 通常,由客户端发起,建立到服务器指定端口(默认80端口)的TCP链接;服务器在指定端口监听客户端的请求并响应,返回状态信息(如“HTTP/1.1 200”)和内容信息;
    • request:客户端->服务器端;
    • response:服务器端->客户端;

HTTP/1.1协议定义的8中请求方式:(名称均大写)

  • OPTIONS
  • HEAD
  • GET:请求服务器,读取信息并显示;
  • POST:向服务器提交数据,请求服务器处理(表单提交、文件上传);
  • PUT
  • DELETE
  • TRACE
  • CONNECT

HTTPS

Hyper Text Transfer Protocol Secure:

  • 默认端口443;
  • 相比HTTP明文封装信息的方式,HTTPS采用密文传输,安全性更好些;

URL

Uniform/Universal Resourse Locator,统一资源定位符,即网址;

标准格式:协议类型://服务器地址(必要时需要加上端口号)/路径/文件名

  • 协议类型:如HTTP、HTTPS
  • 服务器地址:通常为域名,也可以是IP地址(必要时需要端口号);
  • 路径:以“/”区分目录;用“?”发起参数,多个参数用“&”隔开,“=”分开参数名称和值;
  • 文件名:一般由服务器根据路径匹配相应的程序文件;

模型:ORM

静态网页:网页内容,直接写到HTML中;

动态网页:对用户发起的请求,动态提供内容,实时读取数据库信息,呈现在网页上;

数据库是网站最基本和底层的组成:

  • Python本身有读取数据库的模块,可使用SQL语句直接实现程序和数据库的交互;
  • Django中与数据库的交互方式,则是ORM(Object-Relational Mapping),即对象关系映射;

ORM在关系型数据库与业务实体对象之间映射,避免了通过复杂的SQL操作业务对象,只需简单操作对象的属性和方法;

Django的数据模型层大量使用ORM:

  • 可移植性好,如从SQLite改为至MySQL数据库,只需在settings.py中配置新数据库,再进行数据迁移,即可完成数据库的移植,无需修改ORM;
  • 安全性好,由于基本不需要执行SQL,也不必担心SQL注入等形式的攻击;此外,ORM还提供了自动引用和转义变量的机制,安全性更好;
  • 查询语法简单,操作Python对象,让语法更加简洁;

Django的ORM表现方式就是编写数据模型类:

  • 通常需要写到应用的models.py文件中;
  • 每个数据模型类都是django.db.models.Model的子类;
  • 应用的名称小写_数据模型类的名称小写 共同组成一个数据库表的名称;
  • 已编写好的数据模型类,再执行Django的数据迁移操作即可创建相应的数据库表,进而保存网站数据:
    • python manage.py makemigrations
    • python manage.py migrate
  • 后续如果要修改数据库表结构,也只需修改数据模型类,即可完成对数据库表结构的调整;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小酌Django3——HTTP/URL/ORM简述 的相关文章

随机推荐

  • Linux基础—系统结构介绍(一)

    一 系统结构由内核 shell 文件系统 应用程序一起组合而成的文件操作系统 它们使得用户可以运行程序 管理文件 资源调度 计算 1 Linux 内核由如下几部分组成 SCI 层系统调用接口 虚拟文件系统 内存管理 进程管理 设备驱动程序
  • Ubuntu下 Hyperledger Farbic 环境配置

    Hyperledger Farbic Hyperledger作为IBM旗下主推的区块链 是首个面向企业的开放区块链技术的重要探索 现阶段也推出了1 0稳定版本 虽然IBM也有相关的配置文档 并且完善度十分高 但是依旧有些坑点 配置目录 以下
  • 人脸检测算法YuNet再次提升,参数量降至54K

    我们的人脸检测项目libfacedetection是2015年创建的开源项目 算法模型为YuNet 已经持续维护8年至今 在GitHub上已经获得11 7K星 欢迎大家三连 使用 反馈和建议 2022 2023年我们对训练部分进行了大幅改进
  • 让安全动起来

    山石网科带你 分分钟拿下靶标 一 信息收集 信息收集是整个攻击流程当中最重要的一步 从 web 入手 首先需要收集子域名 可以通过枚举的方式收集子域名 例如经典的 layzer子域名挖掘机 另外还可以通过搜索引擎收集子域名 例如 fofa
  • js对数据进行加密(账户密码加密)@莫成尘

    先看代码 复制使用即可 这是一个比较常用的场景我们借助了 crypto es gt vue3 crypto es gt vue2 库 如您满意请给莫成尘点个star 将他封装为单独的js文件 import CryptoJS from cry
  • Fabric CA国密版本的一种替代方案--使用cryptogen工具增加新用户

    在Fabric超级账本中 如果我们想动态增加用户发行证书 一般会使用Fabric CA或者其它CA 然而在国密改造场景中 当前缺乏可用的开源的Fabric CA国密版本 因此 笔者研究了一下 发现了一种可不使用CA直接使用cryptogen
  • 7-2 交换最小值和最大值 (15分)

    7 2 交换最小值和最大值 15分 本题要求编写程序 先将输入的一系列整数中的最小值与第一个数交换 然后将最大值与最后一个数交换 最后输出交换后的序列 注意 题目保证最大和最小值都是唯一的 输入格式 输入在第一行中给出一个正整数N 10 第
  • Chapter5 --Clocks(时钟及虚拟时钟)

    文章目录 5 3 create clock 5 3 1 Specifying Clock Period 5 3 2 Identifying the Clock Source 5 3 3 Naming the Clock 5 3 4 Spec
  • 操作系统处理机调度及常见的调度算法

    处理机调度的层次 高级调度 高级调度又称为作业调度或长程调度 其主要功能是根据某种算法 把外存上处于后备队列中的那些作业调入内存 也就是说 它的调度对象是作业 中级调度 又称为中程调度 引入中程调度的目的是为了提高内存利用率和系统吞吐量 中
  • IDEA与IDEA(2020.1版本)的安装

    DEA简介 IDEA 全称 IntelliJ IDEA 是 Java 语言开发的集成环境 IntelliJ 在业界被公认为最好的 Java 开发工具之一 IDEA 是 JetBrains 公司的产品 这家公司总部位于捷克共和国的首都布拉格
  • elementUI中的el-date-picker日期月份时间选择器禁用

    1 时间选择器禁用 当开始时间已经选择时 结束时间不能小于开始时间 即禁用结束时间选择器中开始时间前 反之亦然 template内容
  • 【HarmonyOS】实现将pcm音频文件进行编码并写入文件(API6 Java)

    关键字 音频编码 管道模式 createEncoder 写在前面 在使用API6开发HarmonyOS应用时 如何将pcm源文件进行编码并写入文件 最后生成aac文件 本文直接附上主要代码开发步骤供大家参考 主要功能代码 import oh
  • 现阶段项目介绍及电脑网络/RFID/NFC概述

    现阶段项目介绍及电脑网络 RFID NFC概述 文章目录 现阶段项目介绍及电脑网络 RFID NFC概述 1 现阶段项目介绍和行业前景 2 RFID 1 RFID概述 2 应用 3 技术及性能参数 4 使用风险 3 NFC 1 概述 2 工
  • A*算法解八数码问题

    1 问题描述 1 1什么是八数码问题 八数码游戏包括一个33的棋盘 棋盘上摆放着8个数字的棋子 留下一个空位 与空位相邻的棋子可以滑动到空位中 游戏的目的是要达到一个特定的目标状态 标注的形式化如下 1 2 3 4 5 6 7 8 1 2问
  • [转]vue3中使用vueQuill富文本编辑器详细教程,图片上传-图片压缩

    vueQuill是支持vue3的富文本编辑器组件 使用简单方便 官方网址 https vueup github io vue quill 效果图 1 安装 在官网有详细的安装教程 npm或者yran下载 npm install vueup
  • k8s 以statefulset方式部署zookeeper集群

    k8s 以statefulset方式部署zookeeper集群 参考 k8s官网zookeeper集群的部署 数据挂着方式改成通过本地方式创建的pv https kubernetes io docs tutorials stateful a
  • [深度解剖C语言] --关键字 static

    static 最名不副实的关键字 目录 1 static修饰全局变量 2 static修饰函数 3 static修饰局部变量 static的作用 1 static修饰全局变量 我们创建两个源文件 一个test c 一个main c 现在我们
  • 【日常问题记录】visual studio 出现 E0266 “data“ 不明确 错误

    解决方法 定义的变量和内部变量冲突 将变量的把名字改成其他名字即可
  • 【Kubernetes】mac 安装minikube

    1 一 官网安装 官网 https minikube sigs k8s io 搜了下网上如何通过Mac 安装看网上文章很多 但是受限于国内网络环境 很多都不行 各种下载失败 如果你有VPN 那么官方的步骤就容易走通 brew install
  • 小酌Django3——HTTP/URL/ORM简述

    小酌Django3 HTTP URL ORM简述 HTTP Hyper Text Transfer Protocol 超文本传输协议 是客户端与服务端请求和应答的标准 TCP 封装了Web服务的整个过程 通常 由客户端发起 建立到服务器指定