【Python関連アプリケーション】1.PythonでSQLalchemyを使用

2275 ワード

# coding:utf8
# ORM              
# pip install mysql-client 
# pip install sqlalchemy

#     
from sqlalchemy import create_engine

# echo=True-----         sql  
engine = create_engine('mysql://root:[email protected]:3306/test1', echo=True)

#       
# declarative_base      
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

from sqlalchemy import Column, Integer, String


class User(Base):
#          
__tablename__ = 'users'

id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(50))
password = Column(String(50))

#       
def __repr__(self):
return "" % (self.name, self.name, self.password)


#      
User.metadata.create_all(engine)

#     
from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()


#          

# add   sql  insert
# ed_user = User(id=0, name='test', password='test123')
# session.add(ed_user)
# session.commit()
# print("add  :", ed_user)

def insert_con():
try:
insert_user = User(id=0, name='test', password='test123')
print("Select  :", insert_user)
# add   sql  insert
session.add(insert_user)
session.commit()
print("    !!!")
except:
print("    !!!")


#     
def delete_con(did):
try:
# select_user = session.query(User).filter_by(id=did).first()
select_user = session.query(User).filter(User.id == did).first()

print("Select  :", select_user)
session.delete(select_user)
session.commit()
print("    !!!")
except:
print("    !!!")


# session.query(  )-----     
# filter_by----   sql  where
# first()------   sql  limit1
'''
select_user=session.query(User).filter_by(password='123').first()   
select * from users where password='123' limit 1; 
'''


def update_con(uid):
# update_user=session.execute('update users set name="hello world" where id=2 ')
# session.query(User).filter_by(id=uid).first().update({User.name: "Dr. No"})
session.query(User).filter(User.id == 5).update(
{User.name: "Dr. No"})

session.commit()
print("update  !!!")


if __name__ == '__main__':
delete_con(5)
# update_con(5)