python 資料庫連接 CRUD

來源:互聯網
上載者:User

標籤:oca   commit   highlight   mys   query   meta   ada   資料庫連接   from   

import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,String,Integerfrom sqlalchemy.orm.session import sessionmakerfrom sqlalchemy import funcengine = create_engine(‘mysql+pymysql://root:[email protected]/testdb?charset=utf8‘,echo=False)Base = declarative_base()  # 生產orm基類class User(Base):    __tablename__ = ‘user‘  # 表名    id = Column(Integer, primary_key=True)    name = Column(String(32))  # varchar(32)    password = Column(String(64))  # varchar(64)    def __init__(self,name,password):        self.name = name        self.password = password    def __repr__(self):        return ‘<@user:[name=%s,password=%s]> ‘ %(self.name,self.password)Base.metadata.create_all(engine)  # 不存在建立資料表Session_class = sessionmaker(bind=engine)  # 建立與資料庫的會話session class ,注意,這裡返回給session的是個class,不是執行個體Session = Session_class()  # 生產session執行個體user_obj = User(name=‘kaige‘,password=‘123456‘)  # 產生你要建立的資料對象print(user_obj.name, user_obj.id)  # 此時還沒建立對象呢,列印一下id發現還是None#  插入資料 , 必須要commitSession.add(user_obj)  # 把要建立的資料對象添加到這個session裡, 一會統一建立print(user_obj.name, user_obj.id)  # 此時也依然還沒建立# 提交資料Session.commit()# Session.rollback()  復原# 查詢 一條# my_user = Session.query(User).filter_by(name=‘kaige‘).first()# 查詢所有# my_user = Session.query(User).filter(User.name==‘kaige‘).all()# 修改# my_user = Session.query(User).filter_by(name=‘kaige‘).first()# my_user.name = ‘I love you22222222‘# Session.commit()  # 修改插入需要commit# 包含多個條件# my_user = Session.query(User).filter(User.name.in_([‘kaige‘, ‘I love you‘])).all()# 模糊查詢# my_user = Session.query(User).filter(User.name.like("I%")).all()# 統計# my_user = Session.query(User).filter(User.name == ‘kaige‘).count()# 分組‘‘‘  SELECT count(user.name) AS count_1, user.name AS user_name  FROM user GROUP BY user.name‘‘‘# print(Session.query(func.count(User.name),User.name).group_by(User.name).all() )# 輸入結果 : [(1, ‘I love you‘), (2, ‘I love you22222222‘), (19, ‘kaige‘)]# Session.query(User).filter(User.name.in_([‘Jack‘,‘rain‘])).all()print(my_user)

http://www.cnblogs.com/alex3714/articles/5978329.html

python 資料庫連接 CRUD

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.