用sqlalchemy对mysql数据库增删改查demo
生活随笔
收集整理的這篇文章主要介紹了
用sqlalchemy对mysql数据库增删改查demo
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先要搭建mysql服務(wù)器、安裝mysql python驅(qū)動、安裝sqlalchemy包,
????我用的是windows環(huán)境,安裝參考:https://blog.csdn.net/jishuwenming/article/details/80993840
????完整demo 如下:
---------------------?
作者:jishuwenming?
來源:CSDN?
原文:https://blog.csdn.net/jishuwenming/article/details/82719156?
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
?
#!/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)#連接數(shù)據(jù)庫 connect = create_engine(DB_URI)#生成ORM基類 Base = declarative_base() #生成數(shù)據(jù)庫表模型 class User(Base):__tablename__ = "user_login_table" # 表名id = Column(Integer, primary_key=True)name = Column(String(32))password = Column(String(64))#創(chuàng)建表結(jié)構(gòu) def creat_table():Base.metadata.create_all(connect) #刪除表結(jié)構(gòu) def rm_table():Base.metadata.drop_all(connect)def creat_session():#創(chuàng)建與數(shù)據(jù)庫的會話session class ,這里返回給session的是classsession_class = sessionmaker(bind=connect) #生成session實(shí)例return session_class() #增加數(shù)據(jù) def orm_insert(name_value, password_value):obj = User(name = name_value, password = password_value) #生成數(shù)據(jù)對象session.add(obj) #把要創(chuàng)建的數(shù)據(jù)對象添加到session里session.commit() #創(chuàng)建數(shù)據(jù)#查詢數(shù)據(jù),查不到情況下異常處理 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================='#刪除一條數(shù)據(jù) 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):#其實(shí)增刪改操作已測試了查詢,此處用例完整性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)?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的用sqlalchemy对mysql数据库增删改查demo的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE 树形遍历查询根节点 父节点
- 下一篇: mysql 6.5.7_centos 6