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前缀开头的就是我们创建的
原文:https://www.cnblogs.com/lijinming110/p/9858880.html