1 导入需要的扩展和包from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
2 连接数据库HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'movie_cat'
USERNAME = 'root'
PASSWORD = '123456'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
engine = create_engine(DB_URI)
# 所有的类都要继承自`declarative_base`这个函数生成的基类
Base = declarative_base(engine)
3 创建一个表class Person(Base):
# 定义表名为users
__tablename__ = 'person'
id = Column(Integer, primary_key=True)
name = Column(String(50))
age = Column(Integer)
country = Column(String(50))
# 让打印出来的数据更好看,可选的
def __repr__(self):
return "" % (
self.id, self.name, self.age, self.country)
# Base.metadata.create_all()
4 增 删 改 查# 增
def add_data():
# 添加一条
# p = Person(name='zhangsan',age=18,country='china')
# session.add(p)
# 添加多条
p1 = Person(name='李四', age=17, country='china')
p2 = Person(name='王五', age=19, country='china')
session.add_all([p1, p2])
session.commit()
# 删
def delete_date():
id = input("请输入要删除的id:")
all_person = session.query(Person).get(id)
if not all_person:
print("当前id为{},没有这条记录".format(id))
return False
session.delete(all_person)
session.commit()# 改
def update_data():
person = session.query(Person).first() # 这是查找第一条数据
if not person:
print("没有数据记录")
return False
person.name = "我修改了第一条"
session.commit()# 查
def search_data():
all_person = session.query(Person).all()
for item in all_person:
print(item)# 根据条件查找
def search_where_all(id):
# all_person = session.query(Person).filter_by(id=id).all()
# print( all_person )
all_person = session.query(Person).get(id)
print(all_person)