写点什么

软件测试 / 测试开发 / 全日制 | 学习使用 ORM 简化数据库操作

  • 2024-01-04
    北京
  • 本文字数:2226 字

    阅读完需:约 7 分钟

霍格沃兹测试开发学社推出了《Python 全栈开发与自动化测试班》。本课程面向开发人员、测试人员与运维人员,课程内容涵盖 Python 编程语言、人工智能应用、数据分析、自动化办公、平台开发、UI 自动化测试、接口测试、性能测试等方向。为大家提供更全面、更深入、更系统化的学习体验,课程还增加了名企私教服务内容,不仅有名企经理为你 1v1 辅导,还有行业专家进行技术指导,针对性地解决学习、工作中遇到的难题。让找工作不再是难题,并且能助力你拿到更好的绩效与快速晋升。


导言: 对象关系映射(ORM)是一种编程技术,它将数据库中的表与应用程序中的对象进行映射,使得开发者可以使用面向对象的方式进行数据库操作,而不必直接操作 SQL 语句。在 Python 全栈开发中,ORM 框架简化了数据库交互,提高了代码的可读性和可维护性。

1. ORM 基础概念:

ORM 的基本思想是将数据库表映射为应用程序中的对象,表中的每一行记录映射为对象的实例,表中的每个字段映射为对象的属性。ORM 框架负责将对象的操作翻译成对应的 SQL 语句,实现对象与数据库的无缝交互。

2. 选择合适的 ORM 框架:

在 Python 中,有多个优秀的 ORM 框架可供选择,比如 Django 的 ORM、SQLAlchemy 等。选择框架时要考虑项目需求、性能、灵活性等因素。

3. 使用 Django ORM 进行简单操作:

Django 的 ORM 是一个强大而易用的工具,以下是一些基本的操作:

连接数据库:

settings.py中配置数据库信息:

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.sqlite3',        'NAME': BASE_DIR / "db.sqlite3",    }}
复制代码

定义模型:

from django.db import models
class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) publication_date = models.DateField()
复制代码

数据库迁移:

运行以下命令创建数据库表:

python manage.py makemigrationspython manage.py migrate
复制代码

CRUD 操作:

# 创建book = Book.objects.create(title='Example Title', author='John Doe', publication_date='2022-01-01')
# 查询books = Book.objects.all()book = Book.objects.get(id=1)
# 更新book.title = 'New Title'book.save()
# 删除book.delete()
复制代码

4. 使用 SQLAlchemy 进行简单操作:

SQLAlchemy 是一个灵活且功能强大的 ORM 框架,以下是一些基本的操作:

连接数据库:

from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///example.db')Session = sessionmaker(bind=engine)session = Session()
复制代码

定义模型:

from sqlalchemy import Column, Integer, String, Datefrom sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Book(Base): __tablename__ = 'books'
id = Column(Integer, primary_key=True) title = Column(String) author = Column(String) publication_date = Column(Date)
复制代码

数据库迁移:

运行以下命令创建数据库表:

from sqlalchemy import create_enginefrom your_module import Base
engine = create_engine('sqlite:///example.db')Base.metadata.create_all(engine)
复制代码

CRUD 操作:

# 创建book = Book(title='Example Title', author='John Doe', publication_date='2022-01-01')session.add(book)session.commit()
# 查询books = session.query(Book).all()book = session.query(Book).get(1)
# 更新book.title = 'New Title'session.commit()
# 删除session.delete(book)session.commit()
复制代码

5. 优势与注意事项:

优势:

  • 简化数据库操作,无需编写繁琐的 SQL 语句。

  • 提高代码的可读性和可维护性。

  • 实现对象关系的映射,更符合面向对象的编程思想。

注意事项:

  • 需要谨慎处理性能问题,特别是在处理大量数据时。

  • 需要了解 ORM 框架的具体文档,掌握高级特性和最佳实践。

  • 在选择框架时,考虑项目的需求和规模,选择合适的框架和配置。

通过学习和使用 ORM 框架,开发者可以更轻松地进行数据库操作,提高开发效率,同时确保了代码的清晰性和可维护性。


推荐

Python 全栈开发与自动化测试开发班

由浅入深实战进阶,从小白到高手

以 Python 全栈开发为基础,深入教授自动化测试技能,为学员打造全面的技术能力。通过系统学习和实际项目实战,学员将具备在职场中脱颖而出的竞争力。不仅能够灵活运用 Python 进行开发,还能够保障项目质量通过自动化测试手段。这是一个全面提升职业竞争力的机会。

课程详情

Python 开发必备基础技能与项目实战

Pvthon 编程语言/算法和数据结构/面向对象编程 Web 后端开发/前端开发/测试管理平台项目实战

人工智能 ChatGPT 实战

人工智能辅助学习各种开发和测试技能/Pytorch 深度学框架/平台开发实战

数据分析与自动化办公

数据采集/Pandas 与数据处理技术/ECharts 与数据可视化技术/爬虫实战/自动化办公/批量文件处理

UI 自动化测试与高级项目实战

Web 自动化测试/App 自动化测试/ PageObject 设计模式

接口自动化测试

接口协议分析/Mock 实战/服务端接口测试

性能测试

性能测试流程与方法/JMeter 脚本参数化/Grafana 监控系统搭建

简历指导与模拟面试

1V1 简历指导/模拟真实面试/测试开发岗面试全攻略名企私教服务

名企专家 1v1 辅导/行业专家技术指导/针对性解决工作难题/绩效提升辅导与晋升复盘

课程亮点

名企私教服务 先学习后付费 高额奖学金

专属社群+晚自习在线答疑

5V1 全方位辅导作业+考试强化学习效果

简历修改 模拟面试 就业内推 面试复盘

领取人工智能学习资料,请点击!!!

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试/测试开发/全日制 | 学习使用ORM简化数据库操作_测试_测吧(北京)科技有限公司_InfoQ写作社区