Python ORM

62 篇文章 0 订阅

Python 中的 ORM(Object-Relational Mapping)框架,其中最著名和广泛使用的两个是 SQLAlchemy 和 Django ORM。

1. SQLAlchemy

SQLAlchemy 是 Python 中功能最强大的 SQL 工具库之一,它不仅提供了 ORM 功能,还提供了核心的数据库 SQL 工具。它允许你用 Python 类来表示数据库表,并且可以使用 Python 代码而不是直接写 SQL 查询语句来操作数据库。这非常类似于 MyBatis 的方式,但更接近于 Hibernate。

特点:

  • 支持多种数据库(如 PostgreSQL, MySQL, SQLite 等)。
  • 提供了两种主要的使用方式:核心 SQL Expression Language 和 ORM。
  • 高度可扩展,可以自定义行为和事件。

示例代码:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)

engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()

new_user = User(name='John Doe')
session.add(new_user)
session.commit()

2. Django ORM

Django 是一个全栈式的 Python Web 框架,其中包含了一个强大的 ORM。Django ORM 提供了一种简单的方式来创建和查询数据库表,而无需编写原始的 SQL 代码。它的设计哲学是“不要重复自己”(DRY),因此提供了许多便利的功能,如自动管理数据库迁移、自动生成管理界面等。

特点:

  • 内置了模型验证和错误报告。
  • 自动生成管理界面。
  • 支持数据库的迁移管理。

示例代码:

from django.db import models

class User(models.Model):
    name = models.CharField(max_length=100)

# 在 Django shell 或视图中使用 ORM
user = User(name='John Doe')
user.save()

# 查询
users = User.objects.all()

总结

SQLAlchemy 和 Django ORM 都提供了类似于 MyBatis 的功能,但它们的使用场景和设计哲学略有不同。如果你正在构建一个复杂的 Web 应用,那么 Django 可能更适合你,因为它提供了更多的开箱即用的功能。如果你需要更细粒度的控制或者想要在非 Web 应用中使用 ORM,那么 SQLAlchemy 是更好的选择。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

svygh123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值