sqlalchemy表的一對一關係

2021-10-05 21:26:26 字數 2272 閱讀 1211

demo7.py

from sqlalchemy import

( create_engine,

integer,

string,

column,

float,

boolean,

decimal,

datetime,

date,

time,

text,

enum,

foreignkey

)from sqlalchemy.dialects.mysql import longtext

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import sessionmaker,relationship,backref # sessionmaker 是基類

hostname =

'127.0.0.1'

# 資料庫位址

port =

'3306'

# 埠號

database =

'dasheng'

# 資料庫名字

username =

'root'

# 使用者名稱

password =

'123456'

# 密碼

db_uri =

'mysql+pymysql://{}:{}@{}:{}/{}'

.format

(username, password, hostname, port, database)

# 建立資料庫引擎

engine = create_engine(db_uri)

base = declarative_base(engine)

session = sessionmaker(engine)()

class

user

(base):#一

__tablename__ =

'user'

id= column(integer, primary_key=

true

, autoincrement=

true

) username = column(string(50)

, nullable=

false

)def

__repr__

(self)

:return

'user(username:%s)'

% self.username

class

userextend

(base)

: __tablename__ =

'user_extend'

id= column(integer,primary_key=

true

,autoincrement=

true

) school = column(string(50)

) uid = column(integer,foreignkey(

'user.id'))

user = relationship(

'user'

,backref=backref(

'extend'

, uselist=

false))

#uselist=false 告訴父模型 以後引用時不再是列表 而是物件

def__repr__

(self)

:return

'extend(school:%s)'

%self.school

# base.metadata.drop_all()

# base.metadata.create_all()##

# user = user(username='大聖')

# extend = userextend(school='zzuli')

# extend.user = user

## session.add(extend)

# session.commit()

user = session.query(user)

.first(

)print

(user.extend)

extend = session.query(userextend)

.first(

)print

(extend.user)

表關係 一對一,一對多,多對多

可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...

表關係 一對一,一對多,多對多

可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...

MyBatis一對一以及一對多關聯表查詢

當前資料庫中存在三個表clazz和teacher以及student,資料字典如下 clazz c id,c name,teacher id teacher t id,t name student s id,s name,class id 三個表對應的實體類如下 public class clazzp...