SQL_Alchemy学习笔记

本文介绍了ORM(对象关系映射),搭建virtuallenv实验环境并下载启动ipython。通过Engine对象连接数据库,基于基类创建Python类自动映射到数据库。说明了Session是映射类与数据库沟通桥梁,可通过其操作表中数据,如用query和filter方法,最后完成数据库表创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORM(Object-Relational Mapping) 对象关系映射

virtuallenv 实验环境 下载ipython

$ sudo pip install virtualenv
$ virtualenv -p /usr/bin/python3.5 env
$ source env/bin/activate
$ pip install sqlalchemy ipython mysqlclient
$ deactivate

启动ipython

$ source env/bin/activate
$ ipython

通过Engine对象连接数据库`

In [1]: from sqlalchemy import create_engine

In [2]: engine = create_engine('mysql://root:@localhost/shiyanlou')

In [3]: engine.execute('select * from user').fetchall()

基于基类创建python类,会自动映射到数据库中

In [12]: from sqlalchemy.ext.declarative import declarative_base

In [13]: Base = declarative_base()

创建 python 类 user,自动映射到 数据库shiyanlou中的user表,因为In[2]中create_engine中的地址连接到了shiyanlou,等于说use shiyanlou了.

In [19]: from sqlalchemy import Column, Integer, String

In [20]: class User(Base):
    ...:     __tablename__ = 'user'
    ...:     id = Column(Integer, primary_key=True)
    ...:     name = Column(String(50))
    ...:     email = Column(String(50))
    ...:     def __repr__(self):
    ...:         return "<User(name=%s)>" % self.name
    ...: 

In [21]:

Session 是映射类和数据库沟通的桥梁,包含事务管理功能。
通过Session 操作表中数据。
先创建 Session

In [30]: from sqlalchemy.orm import sessionmaker

In [31]: Session = sessionmaker(bind=engine)

In [32]: session = Session()

通过query方法查询,还有个filter方法添加筛选条件过滤。相当于WHERE了

In [63]: session.query(User).all()
Out[63]: [<User(name=aiden)>, <User(name=lxttx)>]

In [65]: session.query(User).filter(User.name=='aiden').first()
Out[65]: <User(name=aiden)>

创建数据库表如图右半部分所示,最后写左边In [90]中的语句。然后就创建好了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值