我現在有兩個表,我試圖做出這兩個表之間的一對多關係,但我不知道如何在我的表2中插入外鍵列。如何在flask-sqlalchemy中插入另一個表的主鍵值的外鍵值?
這是表1的代碼和2數據庫:
class Calc(db.Model):
__tablename__ = 'calc'
id = db.Column(db.Integer, primary_key=True)
pjt = db.Column(db.String(100))
cse = db.Column(db.Integer)
rmk = db.Column(db.String(100))
gor = db.Column(db.Float(20))
og = db.Column(db.Float(20))
gg = db.Column(db.Float(20))
temp = db.Column(db.Float(20))
press = db.Column(db.Float(20))
h2s = db.Column(db.Float(20))
co2 = db.Column(db.Float(20))
n2 = db.Column(db.Float(20))
ppm = db.Column(db.Float(20))
cor1 = db.Column(db.String(100))
cor2 = db.Column(db.String(100))
cor3 = db.Column(db.String(100))
cor4 = db.Column(db.String(100))
pb = db.Column(db.Float(20))
rs = db.Column(db.Float(20))
bo = db.Column(db.Float(20))
co = db.Column(db.Float(20))
uo = db.Column(db.Float(20))
po = db.Column(db.Float(20))
z = db.Column(db.Float(20))
bg = db.Column(db.Float(20))
pg = db.Column(db.Float(20))
ug = db.Column(db.Float(20))
bw = db.Column(db.Float(20))
uw = db.Column(db.Float(20))
pw = db.Column(db.Float(20))
cw = db.Column(db.Float(20))
iow = db.Column(db.Float(20))
iog = db.Column(db.Float(20))
iwg = db.Column(db.Float(20))
process4 = db.relationship('Matching', backref='case', lazy='dynamic')
class Matching(db.Model):
id = db.Column(db.Integer,primary_key=True)
proc_id = db.Column(db.Integer, db.ForeignKey('calc.id'))
pjt = db.Column(db.String(100))
cse = db.Column(db.Integer)
temp = db.Column(db.Float(20))
pb = db.Column(db.Float(20))
press = db.Column(db.Float(20))
rs = db.Column(db.Float(20))
bo = db.Column(db.Float(20))
uo = db.Column(db.Float(20))
pbG1 = db.Column(db.Float(20))
pbG2 = db.Column(db.Float(20))
pbS1 = db.Column(db.Float(20))
pbS2 = db.Column(db.Float(20))
pbVB1 = db.Column(db.Float(20))
pbVB2 = db.Column(db.Float(20))
pbP1 = db.Column(db.Float(20))
pbP2 = db.Column(db.Float(20))
pbAM1 = db.Column(db.Float(20))
pbAM2 = db.Column(db.Float(20))
rsG1 = db.Column(db.Float(20))
rsG2 = db.Column(db.Float(20))
rsS1 = db.Column(db.Float(20))
rsS2 = db.Column(db.Float(20))
rsVB1 = db.Column(db.Float(20))
rsVB2 = db.Column(db.Float(20))
rsP1 = db.Column(db.Float(20))
rsP2 = db.Column(db.Float(20))
rsAM1 = db.Column(db.Float(20))
rsAM2 = db.Column(db.Float(20))
boG1 = db.Column(db.Float(20))
boG2 = db.Column(db.Float(20))
boS1 = db.Column(db.Float(20))
boS2 = db.Column(db.Float(20))
boVB1 = db.Column(db.Float(20))
boVB2 = db.Column(db.Float(20))
boP1 = db.Column(db.Float(20))
boP2 = db.Column(db.Float(20))
boAM1 = db.Column(db.Float(20))
boAM2 = db.Column(db.Float(20))
uoBG1 = db.Column(db.Float(20))
uoBG2 = db.Column(db.Float(20))
uoBL1 = db.Column(db.Float(20))
uoBL2 = db.Column(db.Float(20))
這是代碼來保存到數據庫:
db.session.add(Matching(temp=mtemp, pb=mbppress, press=mpress, rs=mrrs,
bo=mbbo,uo=muo, pbG1=session['mpb1'], pbG2=session['cpb1'],
pbS1=session['mpb2'], pbS2=session['cpb2'],pbVB1=session['mpb3'],
pbVB2=session['cpb3'], pbP1=session['mpb4'], pbP2=session['cpb4'],
pbAM1=session['mpb5'],pbAM2=session['cpb5'],rsG1=session['mrs1'],
rsG2=session['crs1'], rsS1=session['mrs2'], rsS2=session['crs2'],
rsVB1=session['mrs3'], rsVB2=session['crs3'], rsP1=session['mrs4'],
rsP2=session['crs4'],rsAM1=session['mrs5'], rsAM2=session['crs5'],
boG1=session['mbo1'], boG2=session['cbo1'], boS1=session['mbo2'],
boS2=session['cbo2'],boVB1=session['mbo3'], boVB2=session['cbo3'],
boP1=session['mbo4'], boP2=session['cbo4'],boAM1=session['mbo5'],
boAM2=session['cbo5'],uoBG1=session['muo1'], uoBG2=session['cuo1'],
uoBL1=session['muo2'],uoBL2=session['cuo2'], pjt=exf.pjt.data.pjt,
cse=exf.cse.data.cse))
db.session.commit()
這是表1和2的圖像:
這是我的計算器實例:
db.session.add_all([Calc(gor=ingor, og=inog, gg=ingg, temp=intemp,
press=inpress, h2s=inh2s, co2=inco2,
n2=inn2, ppm=inppm, cor1=cor1, cor2=cor2, cor3=cor3, cor4=cor4,
pb=session['xpb'], rs=session['xrs'], bo=session['xbo'], co=session['xco'],
uo=session['xuo'], po=session['xpo'],
z=session['xz'], bg=session['xbg'], pg=session['xpg'], ug=session['xug'],
pjt=form.pjt.data.pjt, cse=form.cse.data.cse, rmk=form.rmk.data,
bw=session['xbw'], uw=session['xuw'], pw=session['xpw'], cw=session['xcw'],
iow=session['xiow'], iog=session['xiog'], iwg=session['xiwg'])])
db.session.commit()
希望有人能幫助我,謝謝。
請以表格樣本作爲文本。爲了填充外鍵,你需要這個值,或者一個'Calc'的實例。 –
@IljaEverilä基於我的課程Calc,你介意給我一個例子來填補它嗎?我真的很陌生 – izz
您是否有一個現有的'Calc'實例需要關聯,或者您是否在您的'Matching'上創建了一個? –