增加数据
from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, Stringfrom sqlalchemy.orm import sessionmaker# localhostHOSTNAME = '127.0.0.1'DATABASE = 'demo'PORT = 3306USERNAME = 'root'PASSWORD = 'root'DB_URL = 'mysql+mysqlconnector://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)engine = create_engine(DB_URL)Base = declarative_base(engine)class Article(Base): __tablename__ = 'article' id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(50), nullable=False)Base.metadata.create_all()article = Article(name='ecithy')article1 = Article(name='fullStack')print(article.name)# Noneprint(article.id)# 保存到数据库中# 类的实例化 __call__ 将类变成方法去调用Session = sessionmaker(bind=engine)session = Session()# 添加session.add(article1)session.add_all([article, article1])# 提交session.commit()
CURD
# @ Time : 2021/1/31# @ Author : ecithyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, Stringfrom sqlalchemy.orm import sessionmaker# localhostHOSTNAME = '127.0.0.1'DATABASE = 'demo'PORT = 3306USERNAME = 'root'PASSWORD = 'root'DB_URL = 'mysql+mysqlconnector://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)engine = create_engine(DB_URL)Base = declarative_base(engine)class Article(Base): __tablename__ = 'art' id = Column(Integer, primary_key=True) title = Column(String(50), nullable=False) content = Column(String(50)) author = Column(String(50)) def __str__(self): return "Article(title:{},content:{},author:{})".format(self.title, self.content, self.author)Base.metadata.create_all()Session = sessionmaker(bind=engine)session = Session()def add_data(): article = Article(title='Python', content='人生苦短,我用Python', author='龟叔') article1 = Article(title='fullStack', content='人生苦短,我玩全栈', author='ecithy') # session.add(article) session.add_all([article, article1]) session.commit()def search_data(): # all 查询所有 # data = session.query(Article).all() # for item in data: # print(item) # print(item.title) # print(item.content) # print(data) # 条件 filter data = session.query(Article).filter(Article.title=='Python').all() for item in data: print(item, item.title) # data = session.query(Article).filter_by(title='JAVA').all() # for item in data: # print(item) # print(data) # 查询第一条 # data = session.query(Article).first() # print(data) # get 方法 传的ID 不存在 返回None # data = session.query(Article).get(1) # print(data)def update_data(): # 查询出要修改的这条记录 article = session.query(Article).first() print(article) article.title = 'Python' print(article.title) # session.rollback() 用于try异常后 # print(article.title) session.commit() # 回滚 # A 100 B 0 # A 0 B 100 # 撤回def delete_data(): # 查询出要修改的这条记录 article = session.query(Article).first() # 误操作 # is_delete 1 未删除 0 删除 # 修改操作 is_delete 1=>0 session.delete(article) session.commit()if __name__ == '__main__': pass # add_data() # search_data() # update_data() # delete_data()