Django 模型_django反向生成model

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


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封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的MySQL、Oracle、PostgreSQL和SQLite。可以非常轻松的切换数据库。
    Django 模型_django反向生成model
     

ORM的实现过程

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

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

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

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

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

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

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


相关推荐

  • SpringBoot集成拦截器[通俗易懂]

    SpringBoot集成拦截器[通俗易懂]集成拦截器登录验证为例添加拦截器public class LoginInterceptor implements HandlerInterceptor { private Logger log = LoggerFactory.getLogger(getClass()); //Controller逻辑执行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletRe

    2022年8月9日
  • java之Scanner详解「建议收藏」

    java之Scanner详解「建议收藏」1.包:importjava.util.Scanner2.使用方法:Scannerreader=newScanner(System.in);  然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:   nextByte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),next

    2022年7月20日
  • 2021年G3锅炉水处理最新解析及G3锅炉水处理复审模拟考试「建议收藏」

    题库来源:安全生产模拟考试一点通公众号小程序安全生产模拟考试一点通:G3锅炉水处理最新解析考前必练!安全生产模拟考试一点通每个月更新G3锅炉水处理复审模拟考试题目及答案!多做几遍,其实通过G3锅炉水处理考试试题很简单。1、【多选题】玻璃器皿洗涤的标准是()。(AE)A、.均匀润湿B、.无污点C、.无油污D、.透明E、.无水珠2、【多选题】锅炉结生水垢的主要原因是()。(ABCDE)A、.溶解度降低B、.受热分解C、.相互反应D、.水的蒸发,…

    2022年4月15日
  • asp.net里导出excel表方法汇总

    asp.net里导出excel表方法汇总

    2021年7月22日
  • frp内网映射_路由直接frp服务端

    frp内网映射_路由直接frp服务端第一步:云服务器上域名解析添加(前提是有域名已经备案)这里有对应操作截图文件第二步:下载服务器管理软件FinalShellSSH工具:http://www.hostbuf.com/c/131.html必备条件:java配置好,它依赖于java环境第三步:下载frp内网穿透软件(服务器和客户端的均要下载哦)简单配置介绍:https://www.xyzbeta.com/460………

    2022年9月14日
  • 如何给Python安装.whl文件

    如何给Python安装.whl文件安装whl文件也是迫不得已的最后选择,因为有些包其他指令没成功,如果安装了anaconda会方便很多,详见另一篇https://blog.csdn.net/weixin_41592575/article/details/893722971.先弄清楚自己的Python是什么版本的,以方便后续下载合适的.whl文件。win+R进入命令运行窗口,输入cmd打开命令提示符,接着输入python即可…

    2022年5月7日

发表回复

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

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