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

posted @ 2018-11-06 15:41  云丛  阅读(174)  评论(0编辑  收藏  举报