欢迎访问宙启技术站
智能推送

在Python中使用SQLAlchemy.engine.url连接MongoDB数据库的方法

发布时间:2024-01-02 02:18:23

在Python中使用SQLAlchemy连接MongoDB数据库可以使用 SQLAlchemy.engine.url 类来构建连接URL,并传入 create_engine() 方法中,创建数据库引擎。下面是详细的方法和示例代码。

## 方法

1. 导入所需的模块和类:

from sqlalchemy import create_engine
from sqlalchemy.engine.url import URL

2. 构建数据库连接URL:

url = URL(
    drivername='mongodb',  # 数据库驱动名称
    username='admin',  # 用户名
    password='password',  # 密码
    host='localhost',  # 主机名
    port=27017,  # 端口号
    database='mydb'  # 数据库名称
)

3. 创建数据库引擎:

engine = create_engine(url)

## 示例代码

下面是一个完整的示例代码,演示了如何使用SQLAlchemy连接MongoDB数据库,并执行一些基本的操作。

from sqlalchemy import create_engine
from sqlalchemy.engine.url import URL

# 构建数据库连接URL
url = URL(
    drivername='mongodb',
    username='admin',
    password='password',
    host='localhost',
    port=27017,
    database='mydb'
)

# 创建数据库引擎
engine = create_engine(url)

# 定义数据模型
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)
    
    def __repr__(self):
        return f"<User(id={self.id}, name='{self.name}', age={self.age})>"

# 创建用户表
Base.metadata.create_all(engine)

# 插入一条数据
from sqlalchemy.orm import sessionmaker

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

user = User(name='John Doe', age=30)
session.add(user)
session.commit()

# 查询所有数据
users = session.query(User).all()
for user in users:
    print(user)

session.close()

以上示例代码中,首先根据数据库连接参数构建了URL对象,然后使用URL对象创建了数据库引擎。接着定义了一个简单的数据模型 User,包含id、name和age字段。然后使用数据模型创建了用户表。在插入数据时,通过session对象进行操作。最后使用查询语句查询数据库并打印结果。

注意:在使用上述示例代码之前,需要提前安装 sqlalchemy 包和 pymongo 包。