Django 模型_Z模型

Django 模型_Z模型前言随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。2.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:

  • 1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。
  • 2.很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些SQL语句的修改。
  • 3.写SQL时容易忽略web安全问题,给未来造成隐患。SQL注入。

所以我们采用ORM模型
 

ORM模型介绍

orm全称Object Relational Mapping,中文叫做对象关系映射,通过ORM我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句。通过把表映射成类,把行作实例,把字段作为属性,ORM在执行对象操作的时候最终还是会把对应的操作转换为数据库原生语句
 

ORM的优点

  • 易用性:使用ORM做数据库的开发可以有效的减少重复SQL语句的概率,写出来的模型也更加直观、清晰。
  • 性能损耗小:ORM转换成底层数据库操作指令确实会有一些开销。但从实际的情况来看,这种性能损耗很少(不足5%),只要不是对性能有严苛的要求,综合考虑开发效率、代码的阅读性,带来的好处要远远大于性能损耗,而且项目越大作用越明显。
  • 设计灵活:可以轻松的写出复杂的查询。
  • 可移植性:Django封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的MySQLOraclePostgreSQLSQLite。可以非常轻松的切换数据库。
    Django 模型_Z模型
     

ORM的实现过程

(1)配置目标数据库,在setting.py中设置配置属性

(2)构建虚拟对象数据库,在App的model.py文件中以类的形式定义模型

(3)通过模型在目标数据库中创建对象的数据表

(4)在视图函数中使用模型来实现目标数据库的读写操作

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165813.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 滑动窗口算法通用思想

    滑动窗口算法通用思想本文详解「滑动窗口」这种高级双指针技巧的算法框架,带你秒杀几道难度较大的子字符串匹配问题:最小覆盖子串找到字符串中所有字母异位词无重复字符的最长子串最后抽象出一个简单的滑动窗口算法框架。LeetCode上至少有9道题目可以用此方法高效解决。但是有几道是VIP题目,有几道题目虽不难但太复杂,所以本文只选择点赞最高,较为经典的,最能够讲明白的三道题来讲解。第一题为了让读者掌握算法模…

    2025年6月27日
    6
  • 2021.5.2 pycharm 激活码破解方法[通俗易懂]

    2021.5.2 pycharm 激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    57
  • java ee简介_Java EE 简介

    java ee简介_Java EE 简介JavaEE简介JavaEE基本架构JavaEE的诞生是为了解决传统C/S架构的弊端:客户端臃肿庞大,扩展性差等弊端。JavaEE将传统的两层结构细分为了四层。这四层分别是:Client层,Web层,Business层,EIS层JavaEE客户端JavaEE客户端层可分为以下几种:Web客户端,通常是浏览器呈现的网页,这种客户端成为轻量级客户端,因为他们不与…

    2022年7月7日
    19
  • freemark换行输出[通俗易懂]

    freemark换行输出

    2022年1月21日
    51
  • RELU激活函数作用「建议收藏」

    RELU激活函数作用「建议收藏」梯度消失现象:在某些神经网络中,从后向前看,前面层梯度越来越小,后面的层比前面的层学习速率高。梯度消失原因:sigmoid函数导数图像导数最大为0.25<1权重初始值通常使用一个高斯分布所以|w|<1,所以wjσ′(zj)<0.25,根据链式法则计算梯度越来越小。由于层数的增加,多个项相乘,势必就会导致不稳定的情况。sigmoid激活函数的…

    2022年6月16日
    36
  • linux 开发板 ldd,Linux ldd命令

    linux 开发板 ldd,Linux ldd命令Linux下的lld命令的主要作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。ldd是list,dynamic,dependencies的缩写,列出动态库依赖关系。可以用ldd–help或者manldd来看其用法。可以用which命令找到ldd的位置:$whichldd/usr/bin/ldd使用ldd,往往在制作自己的发行版时经常需要判断某条命…

    2022年6月11日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号