20181026日学习笔记 - ORM

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

2.为什么要有ORM?

  1.写程序离不开数据.

  2.在python程序中要用到数据库中的数据怎么办?

    1.使用pymysql连接MySQL数据库的步骤

      1.import pymysql

      2.建立连接
        
conn = pymysql.connect(
host = '127.0.0.1',
port =  3360,
database = 'db1',
user = 'root',
password = '123',
charset = 'utf8',
)

      3.获取光标对象

        cursor = conn.cursor()  -->默认返回[(),()]

        cursor = conn.cursor(cursor=pymysql.cursors.DictCurssor)  -->默认返回[{},{}]

      4.执行SQL语句

        sql = select * from user where name = %s and age = %s;

        cursor.execute(sql,['liming',18])

      5.获取结果

        1.cursor.fetchone()

        2.cursor.fetchall()

        3.cursor.fetchmany(n)  

  2.ORM

    1.新的语法,不需要我们自己写SQL语句

    2.我们要按照新的语法写代码,他帮我翻译成SQL语句

    3.优点:开发效率高,容易移植,容易掌握

    4.缺点:代码执行效率相对低

  3.ORM重点

    类  <-->  数据表

    属性 <-->  字段

    对象 <-->  数据行

3.如何使用ORM

  1.ORM能帮助我们做什么事情?

    1.操作数据表

    2.操作数据行

  2.Django在ORM中如何使用?

    1.告诉Django框架连接那个数据库  --> 在setting.py文件下的DATABASES下配置所有与数据库相关的配置        

DATABASES = { #default是默认的数据库
    'default': {
        'ENGINE': 'django.db.backends.mysql',#告诉Django要连接的是MySQL数据库
        'NAME': 'db1',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER':'root',
        'PASSWORD':'123',
    }
}

    2.告诉Django框架使用什么连接数据库

      在setting.py的同级目录下的__init__.py文件中导入:import pymysql      pymysql.install_as_MySQLdb()

      告诉django框架使用pymysql 代替pymysql.install_as_MySQL()

    3.在app下面的models.py这个文件中定义类   

class UserInfo(models.Model):
    id = models.AutoField(primary_key=True) #在数据库中生成自增的ID主键字段
    username = models.CharField(max_length=20) #varchar(20)
    password = models.CharField(max_length=30)

#生成的表:表名UserInfo,表中有三个字段:ID,username,password

    4.告诉Django在数据库中生成表,两个命令

      1.python manage.py makemigrations     #到model.py下查看里面内容的变动,并在migrations文件夹下生成一个变动的记录

      2.python manage.py migrate  # 到migrations文件夹下查看变动记录,并翻译成SQL语句执行

      3.两条命令生成的表中,auth与django开头的表都是内置的表,app前缀开头的就是我们创建的

猜你喜欢

转载自www.cnblogs.com/lijinming110/p/9858880.html
Orm