第54篇ORM对象关系映射 如何使用ORM与数据可建立连接
Posted cavalier-chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第54篇ORM对象关系映射 如何使用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=3306,
database=‘day43‘,
user=‘root‘,
password=‘123‘,
charset=‘utf8‘
)
3. 获取光标对象
cursor = conn.cursor() --> 默认返回[(), ()]
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) --> 默认返回[{}, {}]
4. 执行sql语句
cursor.execute(‘select * from userinfo‘)
cursor.execute(‘select * from userinfo where username=%s and password=%s‘, [‘xyh‘, ‘xyh123‘])
5. 获取结果
1. cursor.fetchone()
2. cursor.fetchall()
3. cursor.fetchmany(n)
3. ORM(Object Relational Mapping)是什么?
1. 新的语法,不需要我们自己写SQL语句
2. 我们按照新的语法写代码,他帮我翻译成SQL语句
4. ORM优缺点
ORM优点:
1. 开发效率高
2. 容易掌握
3. 容易移植
ORM的缺点:
1. 代码的执行效率低
5. ORM的重点:
类 <--> 数据表
属性 <--> 字段
对象 <--> 数据行
6. ORM能做哪些事情?
1. 操作数据表
2. 操作数据行
7. Django中ORM如何使用?
1. 告诉Django框架连接哪个数据库
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘, # 告诉Django要连接的是MySQL数据库
‘NAME‘: ‘day57‘, # 数据库名称
‘HOST‘: ‘127.0.0.1‘, # 数据库的IP
‘PORT‘: 3306, # 数据库的端口
‘USER‘: ‘root‘, # 连接数据的账号
‘PASSWORD‘: ‘123‘ # 连接数据库的密码
}
}
2. 告诉Django框架用什么连接数据库
在和settings.py同目录下的__init__.py文件中:
import pymysql
pymysql.install_as_MySQLdb()
3. 在app下面的models.py这个文件中定义类
class 类名(models.Model):
pass
4. 两个命令
1. python manage.py makemigrations --> 在小本本(app/migrations)上记录models.py的变更
2. python manage.py migrate --> 把变更记录翻译成SQL语句,去数据库执行
8. 图书管理系统
1. 表结构
1. 出版社
2. 书籍
3. 作者表
4. 作者和书籍的关系表
2. 出版社的增删改查
1. 查
1. ORM: Publisher.objects.all() --> 查询所有的出版社数据
2. html中写for循环(模板语言)
{% for i in [..., ...] %}
{% endfor %}
2. 增
1. ORM创建数据
Publisher.objects.create(name=‘新出版社名称‘)
3. 删
1. HTTP中URL添加参数
/delete_publisher/?id=1
2. 如何在Django中获取URL中的参数
request.GET --> 一个大字典
request.GET.get(‘id‘) --> 取值
3. ORM中删除操作
Publisher.objects.filter(id=1).delete()
4. 改
1. ORM修改
obj.name = ‘新出版社名称‘
obj.save() --> 把改动提交到数据库
以上是关于第54篇ORM对象关系映射 如何使用ORM与数据可建立连接的主要内容,如果未能解决你的问题,请参考以下文章