欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ORM

程序员文章站 2023-11-04 12:18:46
简单介绍ORM: 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 [1]。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。 ......

简单介绍orm:

  对象关系映射(英语:(object relational mapping,简称orm,或o/rm,或o/r mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 [1]。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。

简单分析orm的优缺点:

  优点:1.简单,不用自己写sql语句

     2.开发效率高

  缺点:1.你需要记住orm的特殊语法

        2.因为不是专业的sql语句,相对于某些大佬的sql语句,执行效率肯定有差距

orm中的对应关系:

  类——数据表

  对象——数据行

  属性——字段

orm能做的事:

  1.操作数据表——>创建表、删除表、修改表、操作models.py里面的类

  2.操作数据行——>数据的增删改查

  但是orm不能创建数据库,需要事先自己手动创建数据库。

使用django的orm详细步骤:

  1.自己手动创建数据库

    create database 数据库名;

  2.在django项目中设置连接数据库的相关配置(告诉django连接哪一个数据库)

 1 # 与数据库相关的配置
 2 databases = {
 3     'default': {
 4         # 连接数据库的类型
 5         'engine': 'django.db.backends.mysql',
 6         # 连接数据库的地址
 7         'host':'127.0.0.1',
 8         # 连接数据库的端口
 9         'port':3306,
10         # 数据库名称
11         'name': 'day61',
12         # 用户
13         'user':'root',
14         # 密码
15         'password':'000000'
16     }

  3.告诉djiango用pymysql代替默认的mysqldb连接mysql数据库 

1 import pymysql
2 # 告诉django用pymysql来代替默认的mysqldb
3 pymysql.install_as_mysqldb()

  4.在app下面的models.py文件夹中定义一个类,这个类必须继承models.model.

1 from django.db import models
2 
3 # create your models here.
4 # orm相关的只能写在这个文件里,写在其他文件的话django找不到
5 
6 class userinfo(models.model):
7     id = models.autofield(primary_key=true) # 创建一个自增的主键字段
8     name = models.charfield(null=false,max_length=20) # 创建一个varchar(20)类型的不能为空的字段

  5.在终端执行两个命令

    注:每次在models.py对orm语句修改后,都要执行以下这两个语句。

    (1)python manage.py makemigrations————这句相当于每次改动后,将改动保存到项目文件夹下的migrations中

    这里可能会遇到一个错误,解决办法请参见:    

    (2)python manage.py migrate————这句相当于把改动翻译成sql语句,然后去数据库中执行