Django 模型_django反向生成model

Django 模型_django反向生成model前言随着项目越来越大,采用写原生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 模型_django反向生成model
     

ORM的实现过程

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

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

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

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

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

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

(0)
上一篇 2022年7月30日 下午12:36
下一篇 2022年7月30日 下午12:36


相关推荐

  • OpenClaw + Cursor 联动:AI 助手帮你写代码

    OpenClaw + Cursor 联动:AI 助手帮你写代码

    2026年3月12日
    2
  • 垃圾邮件分类实战(SVM)

    1.数据集说明trec06c是一个公开的垃圾邮件语料库,由国际文本检索会议提供,分为英文数据集(trec06p)和中文数据集(trec06c),其中所含的邮件均来源于真实邮件保留了邮件的原有格式和

    2021年12月30日
    69
  • idea注释模版配置(吐血推荐!!!)[通俗易懂]

    idea注释模版配置(吐血推荐!!!)[通俗易懂]idea注释模版配置idea作为越来越多程序员使用的开发工具,平时的代码注释也非常的关键,下面介绍一下类上注释和方法上注释,方便大家的开发配置,同时也为自己以后配置留一份记录(毕竟每次换环境都需要重新配置一遍)1、新建类的时候自动添加类注释(1)按照上图的提示,找到位置1的FileandCodeTemplates(2)选择右侧的Files选项卡,选择位置2的Class(如果需要设置接口和枚举的注释模版,只需要选择Interface和Enum,按照步骤3配置一下就ok了)(3)在

    2026年4月19日
    4
  • mysql导入Excel表格中文表头_把一个表里的数据导入另一个表

    mysql导入Excel表格中文表头_把一个表里的数据导入另一个表一,Linux版本1.先把Excel的xls格式转为csv3.用notepad++转为uft8编码4.然后转为txt格式5.将本地文件上传到服务器上选择数据库5.创建表格式要跟Excel一样createtableclass(idvarchar(20),namevarchar(20),chinesevarchar(20),mathvarchar(20),englishvarchar(20),physicsvarchar(20)

    2026年2月10日
    5
  • mptcp linux 升级,Ubuntu下配置MPTCP

    mptcp linux 升级,Ubuntu下配置MPTCP本周调研了一下多径 TCP MPTCP 几经周折终于从小白到将 MPTCP 协议配置到 Linux 系统中 并成功地通过 MPTCP 协议访问了支持 MPTCP 协议的检测网站 本文主要介绍实验环境无线网卡驱动的安装 MPTCP 的安装路由配置实验环境镜像下载地址 http mirrors ustc edu cn 获取安装镜像选择 Ubuntu14 04 4 amd64 LiveCD 无线网卡驱动的安装进行 MP

    2026年3月18日
    2
  • mapminmax函数

    mapminmax函数几个要说明的函数接口:[Y,PS]=mapminmax(X)[Y,PS]=mapminmax(X,FP)Y=mapminmax(‘apply’,X,PS)X=mapminmax(‘reverse’,Y,PS)用实例来讲解,测试数据x1=[124],x2=[523];[y,ps]=mapminmax(x1)y=-1.0000-0.3…

    2022年6月15日
    26

发表回复

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

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