什么是ORM

  ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

ORM的优缺点是什么

优点:摆脱复杂的SQL操作,适应快速开发;让数据结构变得简洁;数据库迁移成本更低(如从mysql->oracle)

缺点:性能较差、不适用于大型应用;复杂的SQL操作还需通过SQL语句实现。

ORM跟数据库的对应关系

     表名  <-------> 类名

       字段  <-------> 属性

    表记录 <------->类实例对象

 既然是在操作数据库,那么无非就是创建表,对表中记录的增删改查。我们学习的就是用django中的ORM怎么去操作数据库。

创建表

from django.db import models

class Book(models.Model):
    name=models.CharField(max_length=32)
    price=models.DecimalField(max_digits=5,decimal_places=2)
    publish_date=models.DateField()
    # 与Publish建立一对多的关系,外键字段建立在多的一方
    publish=models.ForeignKey("Publish") 
# 与Author表建立多对多的关系,ManyToManyField可以建在两个模型中的任意一个,自动创建第三张表
    author=models.ManyToManyField("Author")

class Author(models.Model):
    name=models.CharField(max_length=32)
    age=models.IntegerField()
    phone=models.IntegerField()
    addr=models.EmailField()

class Publish(models.Model):
    name=models.CharField(max_length=32)
    addr=models.CharField(max_length=32)
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}  
在配置文件中加它就可以查看翻译成的sql语句

相关文章: