Python sqlalchemy的基本使用
示例代码
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的基本使用的更多相关文章
- python SQLAlchemy
这里我们记录几个python SQLAlchemy的使用例子: 如何对一个字段进行自增操作 user = session.query(User).with_lockmode('update').get ...
- Python SQLAlchemy --3
本文為 Python SQLAlchemy ORM 一系列教學文: 刪除 學會如何查詢之後,就能夠進行後續的刪除.更新等操作. 同樣地,以幾個範例做為學習的捷徑. 123456789 user_1 = ...
- Python SQLAlchemy --2
本文為 Python SQLAlchemy ORM 一系列教學文: 接下來會更深入地探討查詢的使用. 查詢的基本使用法為 session.query(Mapped Class),其後可加 .group ...
- Python SQLAlchemy --1
本文為 Python SQLAlchemy ORM 一系列教學文: SQLAlchemy 大概是目前 Python 最完整的資料庫操作的套件了,不過最令人垢病的是它的文件真的很難閱讀,如果不搭配個實例 ...
- Python SqlAlchemy使用方法
1.初始化连接 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create ...
- python+SQLAlchemy+爬虫
python+SQLAlchemy+爬虫 前面分享了SQLAlchemy的知识,这次我共享一下学习用python开发爬虫再把爬出来的数据放到用SQLAlchemy的数据库上面的知识,当然我这个是带测试 ...
- Python.SQLAlchemy.0
1. SQLAlchemy and You http://lucumr.pocoo.org/2011/7/19/sqlachemy-and-you/ 2. Overview http://docs.s ...
- Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python
http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ...
- Python SQLAlchemy入门教程
本文将以Mysql举例,介绍sqlalchemy的基本用法.其中,Python版本为2.7,sqlalchemy版本为1.1.6. 一. 介绍 SQLAlchemy是Python中最有名的ORM工具. ...
- Python—sqlalchemy
SQLAlchemy SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作. #Dialect用于和数据API进行交流,根据配置文 ...
随机推荐
- javaweb开发.页面中文乱码问题
1.设置eclips , window->Preferences->web->JSP Files中的Encoding选项为UTF-8 2.修改jsp文件头部为UTF-8 <%@ ...
- Oracle 忘记sys与system管理员密码重置操作
首先打开cmd 执行 orapwd file=C:\app\PWDorcl.ora password=orclorcl C:\app\PWDorcl.ora是你要存放的路径文件 Password=or ...
- Django获取数据库数据时根据id筛选
filter(id__in=models.Teacher.objects.all()[0:5]) teacher_list = models.Teacher.objects.filter(id__in ...
- c++沉思录 学习笔记 第六章 句柄(引用计数指针雏形?)
一个简单的point坐标类 class Point {public: Point():xval(0),yval(0){} Point(int x,int y):xval(x),yval(y){} in ...
- print('{:15}|{:^9}|{:^9}'.format('', 'lat.', 'long.'))是什么意思?
平台:win10 x64+Python3.7.0 先了解下——Python3 字符串格式化 Python字符串的格式化方法分为两种,分别为占位符(%)和format方式. 占位符方式在Python2. ...
- ABP框架系列之十四:(Background-Jobs-And-Workers-背景工作和工人)
Introduction ASP.NET Boilerplate provides background jobs and workers those are used to execute some ...
- Build.gradle的详细配置说明
转自:http://blog.csdn.net/u012246458/article/details/51722624 apply plugin: 'com.android.application'/ ...
- bash编程-执行流程
1.顺序执行 shell脚本按从上到下的顺序依次执行,除非使用了选择.循环等执行流程. 2.选择执行 2.1 if # 格式一 if 条件; then # 语句 fi # 格式二 if 条件; the ...
- OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —7.网络服务Neutron配置
网络服务Neutron本章节结束如何安装并配置网络服务(neutron)采用:ref:`provider networks <network1>`或:ref:`self-service n ...
- requsets模块的学习
requests模块的学习 使用之前 pip install requests 发起get,post,请求获取响应 response = requests.get(url,headers) # 发起g ...