示例代码

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Integer, Column, String, DATE, Table, BigInteger #生成引擎
engine = create_engine("mysql+pymysql://root:123456@localhost/mytest?charset=utf8")
#常见ORM基类
Base = declarative_base() #创建学生表
class Student(Base):
__tablename__ = 'student'
id = Column(Integer, primary_key=True)
name = Column(String(32))
password = Column(String(64))
mobile = Column(BigInteger)
gradesclasses = Column(String(64)) #创建老师表
class Teacher(Base):
__tablename__ = 'teacher'
id = Column(Integer, primary_key=True)
name = Column(String(32))
password = Column(String(64))
mobile = Column(BigInteger) if __name__ == "__main__":
Base.metadata.create_all(engine)

ORM多外键关联

#ORM多外键关联

from sqlalchemy import create_engine
from sqlalchemy import Integer, ForeignKey, String, Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship engine = create_engine("mysql+pymysql://skymyyang:666666@mfgskymyyang.chinacloudapp.cn/myyang",
encoding='utf-8')
Base = declarative_base() class Customer(Base):
__tablename__ = 'customer'
id = Column(Integer, primary_key=True)
name = Column(String(32)) billing_address_id = Column(Integer, ForeignKey("address.id")) #账单地址
shipping_address_id = Column(Integer, ForeignKey("address.id")) #邮寄地址 这两个地址同时关联了 同一个地址表 billing_address = relationship("Address", foreign_keys = [billing_address_id])
shipping_address = relationship("Address", foreign_keys = [shipping_address_id]) #通过关联差address表 class Address(Base):
__tablename__ = 'address'
id = Column(Integer, primary_key=True)
street = Column(String(64))
city = Column(String(64))
state = Column(String(64))
def __repr__(self):
return self.street Base.metadata.create_all(engine) #创建表结构

然后进行查询以及数据插入

from daynine import orm_mang_fk

from sqlalchemy.orm import session,sessionmaker

Session_class = sessionmaker(bind=orm_mang_fk.engine)
session = Session_class()#生成session实例 相当于cursor # addr1 = orm_mang_fk.Address(street="Tiantongyuan", city="Changping", state="BJ")
# addr2 = orm_mang_fk.Address(street="Wudaokou", city="Haidian", state="BJ")
# addr3 = orm_mang_fk.Address(street="Yanjiao", city="LangFang", state="HB")
# session.add_all([addr1, addr2, addr3])
# c1 = orm_mang_fk.Customer(name = "skymyyang", billing_address_id = 4, shipping_address_id = 5)
# c2 = orm_mang_fk.Customer(name = "mayun", billing_address_id = 6, shipping_address_id = 6)
# session.add_all([c1, c2])
# session.commit()
obj = session.query(orm_mang_fk.Customer).filter(orm_mang_fk.Customer.name =="skymyyang").first()
print(obj.name, obj.billing_address, obj.shipping_address)

ORM多对多

#ORM多对多

from sqlalchemy import create_engine
from sqlalchemy import Integer, ForeignKey, String, Column, DATE, Table
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
#创建引擎
engine = create_engine("mysql+pymysql://skymyyang:666666@mfgskymyyang.chinacloudapp.cn/myyang?charset=utf8",encoding='utf-8')
#生成ORM基类
Base = declarative_base()
book_m2m_author = Table('book_m2m_author', Base.metadata,
Column('book_id', Integer, ForeignKey('books.id')),
Column('author_id', Integer, ForeignKey('authors.id')),
) class Book(Base):
__tablename__ = 'books'
id = Column(Integer, primary_key=True)
name = Column(String(64))
pub_date = Column(DATE)
authors = relationship('Author', secondary=book_m2m_author, backref = 'books') def __repr__(self):
return self.name class Author(Base):
__tablename__ = 'authors'
id = Column(Integer, primary_key=True)
name = Column(String(32))
email = Column(String(64)) def __repr__(self):
return self.name if __name__ == '__main__':
Base.metadata.create_all(engine)

Python sqlalchemy的基本使用的更多相关文章

  1. python SQLAlchemy

    这里我们记录几个python SQLAlchemy的使用例子: 如何对一个字段进行自增操作 user = session.query(User).with_lockmode('update').get ...

  2. Python SQLAlchemy --3

    本文為 Python SQLAlchemy ORM 一系列教學文: 刪除 學會如何查詢之後,就能夠進行後續的刪除.更新等操作. 同樣地,以幾個範例做為學習的捷徑. 123456789 user_1 = ...

  3. Python SQLAlchemy --2

    本文為 Python SQLAlchemy ORM 一系列教學文: 接下來會更深入地探討查詢的使用. 查詢的基本使用法為 session.query(Mapped Class),其後可加 .group ...

  4. Python SQLAlchemy --1

    本文為 Python SQLAlchemy ORM 一系列教學文: SQLAlchemy 大概是目前 Python 最完整的資料庫操作的套件了,不過最令人垢病的是它的文件真的很難閱讀,如果不搭配個實例 ...

  5. Python SqlAlchemy使用方法

    1.初始化连接 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create ...

  6. python+SQLAlchemy+爬虫

    python+SQLAlchemy+爬虫 前面分享了SQLAlchemy的知识,这次我共享一下学习用python开发爬虫再把爬出来的数据放到用SQLAlchemy的数据库上面的知识,当然我这个是带测试 ...

  7. Python.SQLAlchemy.0

    1. SQLAlchemy and You http://lucumr.pocoo.org/2011/7/19/sqlachemy-and-you/ 2. Overview http://docs.s ...

  8. Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python

    http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ...

  9. Python SQLAlchemy入门教程

    本文将以Mysql举例,介绍sqlalchemy的基本用法.其中,Python版本为2.7,sqlalchemy版本为1.1.6. 一. 介绍 SQLAlchemy是Python中最有名的ORM工具. ...

  10. Python—sqlalchemy

    SQLAlchemy SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作. #Dialect用于和数据API进行交流,根据配置文 ...

随机推荐

  1. javaweb开发.页面中文乱码问题

    1.设置eclips , window->Preferences->web->JSP Files中的Encoding选项为UTF-8 2.修改jsp文件头部为UTF-8 <%@ ...

  2. Oracle 忘记sys与system管理员密码重置操作

    首先打开cmd 执行 orapwd file=C:\app\PWDorcl.ora password=orclorcl C:\app\PWDorcl.ora是你要存放的路径文件 Password=or ...

  3. Django获取数据库数据时根据id筛选

    filter(id__in=models.Teacher.objects.all()[0:5]) teacher_list = models.Teacher.objects.filter(id__in ...

  4. c++沉思录 学习笔记 第六章 句柄(引用计数指针雏形?)

    一个简单的point坐标类 class Point {public: Point():xval(0),yval(0){} Point(int x,int y):xval(x),yval(y){} in ...

  5. print('{:15}|{:^9}|{:^9}'.format('', 'lat.', 'long.'))是什么意思?

    平台:win10 x64+Python3.7.0 先了解下——Python3 字符串格式化 Python字符串的格式化方法分为两种,分别为占位符(%)和format方式. 占位符方式在Python2. ...

  6. ABP框架系列之十四:(Background-Jobs-And-Workers-背景工作和工人)

    Introduction ASP.NET Boilerplate provides background jobs and workers those are used to execute some ...

  7. Build.gradle的详细配置说明

    转自:http://blog.csdn.net/u012246458/article/details/51722624 apply plugin: 'com.android.application'/ ...

  8. bash编程-执行流程

    1.顺序执行 shell脚本按从上到下的顺序依次执行,除非使用了选择.循环等执行流程. 2.选择执行 2.1 if # 格式一 if 条件; then # 语句 fi # 格式二 if 条件; the ...

  9. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —7.网络服务Neutron配置

    网络服务Neutron本章节结束如何安装并配置网络服务(neutron)采用:ref:`provider networks <network1>`或:ref:`self-service n ...

  10. requsets模块的学习

    requests模块的学习 使用之前 pip install requests 发起get,post,请求获取响应 response = requests.get(url,headers) # 发起g ...