zoukankan      html  css  js  c++  java
  • ORM,Django对数据库的连接和使用

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

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

      • 为什么要有ORM?

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

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

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

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

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

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

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

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

            • import pymysql
              pymysql.install_as_MySQLdb()
              
          • 5XpVWS.png

        • 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)  #添加对应的外键关联值
              
          • 5XLjlO.png

        • 4.俩个命令,在Terminal中输入以下命令,使其在数据库中生成数据

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

  • 相关阅读:
    Linux查看系统信息
    pgrep 和 pkill 使用小记
    linux下json库的编译及例程
    Epoll 实例
    gcc中的内嵌汇编语言
    BZOJ 1053: [HAOI2007]反素数ant
    2018.7.15模拟赛
    BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊
    BZOJ 4241: 历史研究
    LUOGU P2365 任务安排
  • 原文地址:https://www.cnblogs.com/yuncong/p/9856924.html
Copyright © 2011-2022 走看看