linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux数据库 >

Python和MySQL数据库简单操作

时间:2019-01-28  来源:未知  作者:admin666
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String,DateTime,ForeignKey
engine = create_engine('mysql+mysqldb://deamov:password@127.0.0.1:3306/MySQLTest?charset=utf8',echo=True)
#echo这个参数是把sql的语句打印出来
创建映射(表的设计)
Base = declarative_base()
class User(Base):
 __tablename__ = 'users'
 id = Column(Integer, primary_key = Ture)
 name = Column(String(40))
 orders = relationship('Order')
class Product(Base):
 __tablename__ = 'products'
 id = Column(Integer, primary_key = Ture)
 name = Column(String(40))
 orders = relationship('Order')
 #这个orders不是ddl语言,而是针对面向对象编程而言的
class Order(Base):
 __tablename__ = 'orders'
 id = Column(Integer,primary_key = True)
 otime = Column(DateTime)
 uid = Column(Integer, ForeignKey('users.id'))
 pid = Column(Integer, ForeignKey('products.id'))
 #定义外键
初始化映射实例
Base.metadata.create_all(engine)
Session = sessionmaker(engine)
session = Session()
持久化对象实例
DeamoV = User(name = 'DeamoV')
session.add(DeamoV)
p1 = Product(name = 'p1')
session.add(p1)
session.commit()
------
#DeamoV = session.query(User).filter(User.name=='DeamoV')
#返回的是一个集合,集合里是选择的实例类
#p1 = session.query(Product).filter(Product.name=='p1')
#这里的Product和User都是类的名字
o1 = Order(uid=p1.id ,pid=p1.id)
#添加了一个关系
session.add(o1)
orders=DeamoV.orders
#这个时候获取这个关系,目前只有一个关系
for order in orders:
 print(order.id) 
友情链接