ORM,Django对数据库的链接和使用

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

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

    • 为何要有ORM?mysql

      • 写程序离不开数据
      • 新的语法,不须要咱们本身写SQL语句
      • 咱们按照新的语法写代码,他帮我翻译成SQL语句
    • ORM优势:web

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

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

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

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

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

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

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

          • 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
相关文章
相关标签/搜索