python3数据库框架_Python 3.x之数据库框架Sqlalchemy操作SQlite

目前Python 3.x的操作数据库框架比较少,其中Sqlalchemy是一比较优秀的ORM数据持久化操作框架,

它的下载地址为:

目前最新版本为: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:

'''

参考网址

http://www.cnblogs.com/booolee/archive/2009/08/26/1554525.html

'''

from sqlalchemy import create_engine

engine=create_engine('sqlite:///:memory:',echo=True)

from sqlalchemy import Table,Column,Integer,String,MetaData,ForeignKey

metadata=MetaData()

users_table=Table('users',metadata,

Column('id',Integer,primary_key=True),

Column('name',String),

Column('fullname',String),

Column('password',String)

)

metadata.create_all(engine)

class User(object):

def __init__(self,name,fullname,password):

self.name=name

self.fullname=fullname

self.password=password

def __repr__(self):

return "" % (self.name,self.fullname,self.password)

from sqlalchemy.orm import (mapper, relationship, sessionmaker)

#print(User.__table__)

#print(User.__mapper__)

mapper(User,users_table)

ed_user=User('ed','Ed Jones','edspassword')

ed_user.password = 'f8s7ccs'

print(ed_user.fullname)

print(ed_user.password)

还有一个例子为:

__author__ = 'minggxu9'

from sqlalchemy import Table,Column,Integer,String,MetaData,ForeignKey

from sqlalchemy.ext.declarative import declarative_base

Base=declarative_base() #基类

class User(Base):

__tablename__='users' #表名

id=Column(Integer,primary_key=True)

name=Column(String)

fullname=Column(String)

password=Column(String)

def __init__(self,name,fullname,password):

self.name=name

self.fullname=fullname

self.password=password

def __repr__(self):

return "" % (self.name,self.fullname,self.password)

users_table=User.__table__ #用来获得Table

metadata=Base.metadata #获得MetaDATA

#创建Session并绑定一个数据库链接

from sqlalchemy.orm import sessionmaker

from sqlalchemy import engine

Session=sessionmaker(bind=engine)

#如果没有数据库链接,可以这样创建session

Session=sessionmaker()

#当后来由数据库链接后可以这样绑定

Session.configure(bind=engine)

ed_user = User('ed', 'Ed Jones', 'edspassword')

session = Session()

session.add(ed_user)

#通过session的add方法添加一个对象

from sqlalchemy import *

#our_user = session.query(User).filter_by(name='ed').first()

#print(ed_user is our_user )

session.add_all([

User('wendy', 'Wendy Williams','foobar'),

User('mary', 'Mary Contrary', 'xxg527'),

User('fred', 'Fred Flinstone','blah')])

session.dirty

session.new

session.commit()

(完...)

参考网址为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值