参考的是廖雪峰的python教程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017803857459008
我们前面了解到了python连接mysql,用的是官方的mysql-connector,直接写sql语句。今天来学习另一种新的连接数据库方法。用到了ORM技术,ORM就是把数据库的表结构映射到对象上,这个对象是自定义的。 首先安装 SQLAlchemy
pip install sqlalchemy
先看下完整的例子
from sqlalchemy import Column,String,create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# Base是对象基类
Base = declarative_base()
#定义对象,用于被映射数据库结构
class User(Base):
__tablename__ = 'user'
id = Column(String(20), primary_key=True)
name = Column(String(20))
engine = create_engine('mysql+mysqlconnector://root:password@localhost:3306/test')
DBSession = sessionmaker(bind=engine)
tablename 是要连接的数据库表名
create_engine是连接数据库的信息:
格式为:'数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名'
下面的代码展示了如何往数据表里添加一条记录:
session = DBSession()
new_user = User(id='5', name='Bob')
session.add(new_user)
session.commit()
session.close()
对于数据表的连接, sqlalchemy 也提供了很好的实现方式, 我直接把例子引用过来
class User(Base):
__tablename__ = 'user'
id = Column(String(20), primary_key=True)
name = Column(String(20))
# 一对多:
books = relationship('Book')
class Book(Base):
__tablename__ = 'book'
id = Column(String(20), primary_key=True)
name = Column(String(20))
# “多”的一方的book表是通过外键关联到user表的:
user_id = Column(String(20), ForeignKey('user.id'))
网友评论