ORM,Django对数据库连接和使用数据

  • ORM(对象关系映射) 很多语言中的web框架都有这个概念

    • 为什么要有ORM?

      • 写程序离不开数据
      • 新的语法,不需要我们自己写SQL语句
      • 我们按照新的语法写代码,他帮我翻译成SQL语句
    • ORM优点:

      • 开发效率高
      • 容易掌握
      • 容易移植
    • ORM的缺点:

      • 代码执行效率低
    • ORM的重点相互对应

      • 数据表
        属性 字段
        对象 数据行
    • ORM能做哪些事情

      • 操作数据表
      • 操作数据行
    • Django中的ORM如何使用

      • 1.Django框架连接哪个数据库 ---》settings.py中的DATABASE列表中

      • 2.告诉Django框架用什么连接数据库

        • 在和settings.py同级目录中的__init__.py中配置一下参数

          • import pymysql
            pymysql.install_as_MySQLdb()
      • 3.在app下面的models.py这个文件中定义类

        • class Book(models.Model):
          id = models.AutoField(primary_key=True) #在数据库中生成自增的字段
          title = models.CharField(max_length=20) # varchar(20)
          publisher = models.ForeignKey(to='Publisher') # ORM自动刚给外键字段加_id,即publisher指的是关联的对象,publisher_id才是Book中的关联键
        • 外键关联后查询,所以为数据库添加数据时要注意参数!!!!

          • book_obj.publisher       # 书籍关联的出版社对象
            book_obj.publisher_id # 书籍关联的出版社id(数据库中真正保存的那一列的值) Book.objects.create(title=new_title, publisher=Publisher.objects.get(id=publisher_id)) #属性为publisher,则需要添加一个对象
            Book.objects.create(title=new_title, publisher_id=publisher_id) #添加对应的外键关联值
      • 4.俩个命令,在Terminal中输入以下命令,使其在数据库中生成数据

        • python manage.py makemigrations   #在(app/migrations)上记录models.py的变更记录
          python manage.py migrate #把变更记录翻译成SQL语句,去数据库执行

ORM,Django对数据库的连接和使用的更多相关文章

  1. 让Django支持数据库长连接(可以提高不少性能哦)

    书接上回 上回我们说到:<在生产系统使用Tornado WebServer来代替FastCGI加速你的Django应用> 那么现在很流行用一些高性能的nonblock的app server ...

  2. django 操作数据库--orm(object relation mapping)---models

    思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...

  3. Django之 数据库ORM

    一.ORM Django的 业务 少不了 跟数据库打交道,不然没有数据库保存一些数据将是一件很糟糕的事情.Django 对 数据库 支持原生的 SQL语句,但更好的对数据库支持,Django自己有一套 ...

  4. 使django与数据库保持长连接

    最近遇到一个很蛋疼的问题,写了一个后台管理系统, 由于是后台管理系统,所以使用频率不是很高,当django程序在闲置一段时间后,再次打开后台系统,就变得很慢,然后又好了.查了很多方面,从模板引擎到请求 ...

  5. django 多数据库时 ORM语句 选择数据库

    多数据库时ORM语句选择数据库 不需要save的操作: 查询(删除的话查询语句后面加一个.delete()即可,修改的话在后面加一个.update()即可): models.表名.objects.us ...

  6. django mysql 数据库配置

    在settings.py中保存了数据库的连接配置信息,Django默认初始配置使用sqlite数据库. DATABASES = { 'default': { 'ENGINE': 'django.db. ...

  7. Django与数据库操作

    Django与数据库操作 数据库连接的方法 web 框架 django --- 自己内部实现 (ORM) + pymysql(连接) Flask,tornado --- pymysql SQLArch ...

  8. 第二章、Django以及数据库的配置

    目录 第二章.Django以及数据库的配置 一.小白必会三板斧 二.静态文件配置 三.form表单 action和method参数可以写的形式 四.request对象及方法 五.django连接数据库 ...

  9. python学习笔记--Django入门三 Django 与数据库的交互:数据建模

    把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller (MVC)模式.在这个模式中, Model 代表数据存取层,View 代表的是系统中 ...

随机推荐

  1. VNCTF 2022 cm cm1 RE复现

    cm1 安卓逆向 JEB 直接跟进主函数找到 ASSERT里面拿到ooo文件 直接脚本解密 k = "vn2022" with open('ooo', 'rb') as f: c ...

  2. ios plist获取权限

    最近太忙了,没有时间写vue 这个权限获取有点坑,极不好记,所以备份一份 <key>NSVideoSubscriberAccountUsageDescription</key> ...

  3. [LeetCode]1389. 按既定顺序创建目标数组

    给你两个整数数组 nums 和 index.你需要按照以下规则创建目标数组: 目标数组 target 最初为空. 按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组 ...

  4. 防世界之Web_ics-06

    题目: 进入实验环境,发现其他页面啥都没有,题目描述说报表中心数据被删,打开报表中心看看 进入数据中发现url上有?id=1的字样就要注意,敏感起来.id是数值,可以尝试爆破一下. 打开burpsui ...

  5. [自动化]ansible-系统安全加固整改

    基线漏洞安全整改 修复环境:centos7及以上 安全基线的概念 安全基线是一个信息系统的最小安全保证,即该信息系统最基本需要满足的安全要求.信息 系统安全往往需要在安全付出成本与所能够承受的安全风险 ...

  6. 信而泰IPv6协议一致性测试解决方案

    信而泰IPv6协议一致性测试解决方案   背景 中国已经开始逐步进入万物互联的社会,相比原来的手机.电脑等接入网络,万物互联时代接入网络的智能终端会海量增加,而且在万物互联时代,网络的流量巨大,互联的 ...

  7. 如何在Excel里安装excel插件?

    随着科技的发展,人们对数据分析的要求越来越多, Excel也存在一些问题,长期困扰一线业务用户:首先是性能问题.对于大数据量,Excel处理起来很慢.数据获取的过程麻烦,特别是周期性的数据获取,每次都 ...

  8. 学习Spring5必知必会(7)~Spring tx

    一.spring的事务管理 1.引出事务的经典例子:银行转账发生异常 ✿ 解决:把转出钱和转入钱的业务放到同一个事务空间. ■ 分析转账过程流程: ① 首先,获取 DataSource 对象: ② 其 ...

  9. 微信小程序使用weui扩展组件踩坑

    最近在做微信小程序,引入weui的时候踩坑了好久,这里记录一下遇到的问题. 微信官方文档给了两种weui引入方式: 通过 useExtendedLib 扩展库 的方式引入,这种方式引入的组件将不会计入 ...

  10. tensorflow_keras_预训练模型_Applications接口的使用

    在很多复杂的计算机视觉问题上,我们需要使用层次相对较深的卷积神经网络才能得到好结果,但是自己从头去构建卷积神经网络是一个耗时耗力的事情,而且还不一定能训练好.大家通常用到最多的技巧是,使用" ...