import sqlalchemy
from sqlalchemy import create_engine #连接数据库
from sqlalchemy.ext.declarative import declarative_base #orm基类
from sqlalchemy import Column,Integer,String,DATE,ForeignKey#Column列
from sqlalchemy.orm import sessionmaker,relationship
engine=create_engine("mysql+pymysql://root:123456@192.168.0.6/wupeiqi",
encoding='utf-8',echo=False)#连接数据库 echo=TRUE输出执行过程
base=declarative_base()# 生成基类
class Student(base):
__tablename__="student"
id=Column(Integer,primary_key=True)
name=Column(String(32),nullable=False)
register_date=Column(DATE,nullable=False)
def __repr__(self):
return "<%s name:%s>"%(self.id,self.name)
class StudyRecord(base):
__tablename__="study_record"
id = Column(Integer, primary_key=True)
day=Column(Integer,nullable=False)
status=Column(String(32),nullable=False)
stu_id=Column(Integer,ForeignKey('student.id')) #外键关联到student的id
#StudyRecord通过student字段查询Student表里所有数据 在内存里建立relationship关系
student=relationship("Student",backref="my_study_record")#允许你可以在student表里通过my_study_record字段反查Studyrecord所有数据
def __repr__(self):
return "<%s day:%s status:%s>"%(self.student.name,self.day,self.status)
base.metadata.create_all(engine)#创建表
#连接mysql
Session_class = sessionmaker(bind=engine) # 创建与数据库的连接session class ,注意,这里返回给session的是个class,不是实例
session = Session_class() # 生成session实例 session会话 类似cursor
'''
#插入数据
s1=Student(name="kobe",register_date="2017-05-16")
s2=Student(name="jack",register_date="2017-04-16")
s3=Student(name="duncon",register_date="2017-06-16")
s4=Student(name="Allen",register_date="2017-07-16")
record_1=StudyRecord(day=1,status="YES",stu_id=1)
record_2=StudyRecord(day=2,status="NO",stu_id=1)
record_3=StudyRecord(day=3,status="YES",stu_id=1)
record_4=StudyRecord(day=1,status="YES",stu_id=2)
session.add_all([s1,s2,s3,s4,record_1,record_2,record_3,record_4])
session.commit()
'''
#外键查询数据
stu_obj=session.query(Student).filter(Student.name=="kobe").first()
print(stu_obj.my_study_record)
sqlalchemy_外键连接表
原创leiwenbin627 博主文章分类:p12 ©著作权
文章标签 sqlalchemy 外键 连接表 文章分类 Python 后端开发
上一篇:sqlalchemy连表
下一篇:lv磁盘扩展
-
sqlalchemy 外键
一、表 二、数据操作
sqlalchemy -
sqlalchemy 不使用外键 sqlyog外键
为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。当我们想要持久化地存储数据时,使用关系型数据库往往都是最稳妥的选择,这不仅因为今天的关系型数据库种类非常丰富并且稳定,还因为不同社区对关系型数据库的支持都
sqlalchemy 不使用外键 sql 外键 sql外键约束不匹配 不合法的媒体文件 id 创建外键的sql语句 -
Python sqlalchemy orm 外键关联
创建外键关联 并通过relationship 互相调用 如图: 实现代码:
字段 sqlalchemy mysql 插入数据 数据