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
相關文章
相關標籤/搜索