歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python 3.x之數據庫框架Sqlalchemy操作SQlite

Python 3.x之數據庫框架Sqlalchemy操作SQlite

日期:2017/3/1 10:50:32   编辑:Linux編程

目前Python 3.x的操作數據庫框架比較少,其中Sqlalchemy是一比較優秀的ORM數據持久化操作框架,

它的下載地址為:

http://www.sqlalchemy.org/download.html

目前最新版本為:0.7.3

它不太支持python 3.x,當安裝的時候,即使用python setup.py install.會出現

SQLAlchemy includes C extensions which provide an extra speed boost for dealing with result sets. Currently, the

extensions are only supported on the 2.xx series of cPython, not Python 3 or Pypy.

它只是一個警告,並不影響使用,因為它有個2to3.py程序,當版本為python 3.x的時候,它會自動調用的。

安裝好以後:

我寫了兩個測試例子進行測試:

other.py:

  1. from sqlalchemy import create_engine
  2. engine=create_engine('sqlite:///:memory:',echo=True)
  3. from sqlalchemy import Table,Column,Integer,String,MetaData,ForeignKey
  4. metadata=MetaData()
  5. users_table=Table('users',metadata,
  6. Column('id',Integer,primary_key=True),
  7. Column('name',String),
  8. Column('fullname',String),
  9. Column('password',String)
  10. )
  11. metadata.create_all(engine)
  12. class User(object):
  13. def __init__(self,name,fullname,password):
  14. self.name=name
  15. self.fullname=fullname
  16. self.password=password
  17. def __repr__(self):
  18. return "<User('%s','%s','%s')>" % (self.name,self.fullname,self.password)
  19. from sqlalchemy.orm import (mapper, relationship, sessionmaker)
  20. #print(User.__table__)
  21. #print(User.__mapper__)
  22. mapper(User,users_table)
  23. ed_user=User('ed','Ed Jones','edspassword')
  24. ed_user.password = 'f8s7ccs'
  25. print(ed_user.fullname)
  26. print(ed_user.password)

還有一個例子為:

  1. __author__ = 'minggxu9'
  2. from sqlalchemy import Table,Column,Integer,String,MetaData,ForeignKey
  3. from sqlalchemy.ext.declarative import declarative_base
  4. Base=declarative_base() #基類
  5. class User(Base):
  6. __tablename__='users' #表名
  7. id=Column(Integer,primary_key=True)
  8. name=Column(String)
  9. fullname=Column(String)
  10. password=Column(String)
  11. def __init__(self,name,fullname,password):
  12. self.name=name
  13. self.fullname=fullname
  14. self.password=password
  15. def __repr__(self):
  16. return "<User('%s','%s','%s')>" % (self.name,self.fullname,self.password)
  17. users_table=User.__table__ #用來獲得Table
  18. metadata=Base.metadata #獲得MetaDATA
  19. #創建Session並綁定一個數據庫鏈接
  20. from sqlalchemy.orm import sessionmaker
  21. from sqlalchemy import engine
  22. Session=sessionmaker(bind=engine)
  23. #如果沒有數據庫鏈接,可以這樣創建session
  24. Session=sessionmaker()
  25. #當後來由數據庫鏈接後可以這樣綁定
  26. Session.configure(bind=engine)
  27. ed_user = User('ed', 'Ed Jones', 'edspassword')
  28. session = Session()
  29. session.add(ed_user)
  30. #通過session的add方法添加一個對象
  31. from sqlalchemy import *
  32. #our_user = session.query(User).filter_by(name='ed').first()
  33. #print(ed_user is our_user )
  34. session.add_all([
  35. User('wendy', 'Wendy Williams','foobar'),
  36. User('mary', 'Mary Contrary', 'xxg527'),
  37. User('fred', 'Fred Flinstone','blah')])
  38. session.dirty
  39. session.new
  40. session.commit()
Copyright © Linux教程網 All Rights Reserved