用sqlalchemy对mysql数据库增删改查demo
生活随笔
收集整理的這篇文章主要介紹了
用sqlalchemy对mysql数据库增删改查demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先要搭建mysql服務器、安裝mysql python驅動、安裝sqlalchemy包,
????我用的是windows環境,安裝參考:https://blog.csdn.net/jishuwenming/article/details/80993840
????完整demo 如下:
---------------------?
作者:jishuwenming?
來源:CSDN?
原文:https://blog.csdn.net/jishuwenming/article/details/82719156?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
?
#!/usr/bin/python # -*- coding: utf-8 -*- from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String from sqlalchemy.orm import sessionmaker import unittestHOSTNAME = "localhost" PORT = "3306" DATABASE = "test" USERNAME = "root" PASSWORD = "mysql123"DB_URI = "mysql+mysqldb://{username}:{password}@{host}:{port}/{db}?charset=utf8".\format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)#連接數據庫 connect = create_engine(DB_URI)#生成ORM基類 Base = declarative_base() #生成數據庫表模型 class User(Base):__tablename__ = "user_login_table" # 表名id = Column(Integer, primary_key=True)name = Column(String(32))password = Column(String(64))#創建表結構 def creat_table():Base.metadata.create_all(connect) #刪除表結構 def rm_table():Base.metadata.drop_all(connect)def creat_session():#創建與數據庫的會話session class ,這里返回給session的是classsession_class = sessionmaker(bind=connect) #生成session實例return session_class() #增加數據 def orm_insert(name_value, password_value):obj = User(name = name_value, password = password_value) #生成數據對象session.add(obj) #把要創建的數據對象添加到session里session.commit() #創建數據#查詢數據,查不到情況下異常處理 def orm_password_query(name_key):try:ret = session.query(User).filter_by(name = name_key).first().passwordexcept AttributeError:print '\n********************'return 1else:return retfinally:print '\n================='#刪除一條數據 def orm_delete_by_name(name_key):session.query(User).filter(User.name == name_key).delete() session.commit() #修改密碼 def orm_modify_by_name(name_key, password_modify):session.query(User).filter(User.name == name_key).update({User.password: password_modify}, synchronize_session=False)session.commit() class MysqlOperationTest(unittest.TestCase):"""Test mathfuc.py"""def test_orm_insert(self):"""Test method orm_insert(a, b)"""orm_insert("34443", "44rfdfd")password = orm_password_query("34443")self.assertEqual("44rfdfd", password)def test_orm_delete(self):orm_delete_by_name("34443")password = orm_password_query("34443")self.assertEqual(1, password)def test_orm_modify(self):orm_insert("34443", "44rfdfd")orm_modify_by_name("34443", "fdsdsds")password = orm_password_query("34443")self.assertEqual("fdsdsds", password)def test_orm_query(self):#其實增刪改操作已測試了查詢,此處用例完整性orm_insert("ff444", "44rfdfd")password = orm_password_query("ff444")self.assertEqual("44rfdfd", password)if __name__ == '__main__':rm_table()creat_table() session = creat_session()suite = unittest.TestSuite()suite.addTest(MysqlOperationTest("test_orm_insert"))suite.addTest(MysqlOperationTest("test_orm_delete"))suite.addTest(MysqlOperationTest("test_orm_modify"))suite.addTest(MysqlOperationTest("test_orm_query"))runner = unittest.TextTestRunner(verbosity=2)runner.run(suite)?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的用sqlalchemy对mysql数据库增删改查demo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE 树形遍历查询根节点 父节点
- 下一篇: mysql 6.5.7_centos 6