-1
我是新的瓶子,我試圖根據我的Flask視圖中的不同用戶事件更新模型。我可以在shell中訪問它,並可以使用存儲在其中的數據提取一些字段。但我需要根據某些用戶事件從視圖更新模型。以下是我的模型文件:用Flask視圖中的函數更新Flask中的數據庫模型
class Package(db.Model):
__tablename__ = 'package'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
student_id = db.Column(db.Integer, ForeignKey('student_profile.id'))
stripe_id = db.Column(db.String(45))
student_email = db.Column(db.String(20))
subscription_date = db.Column(db.DateTime, default=today)
expiry_date = db.Column(db.DateTime, default=deadline)
is_active = db.Column(db.Boolean, default=True)
planname = relationship('Plan', backref=backref('package'))
package_price = db.Column(db.Integer)
coupon = db.Column(db.String(12))
def __init__(self, id,
stripe_id,
student_email,
subscription_date,
expiry_date,
is_active,
planname,
package_price,
coupon):
self.id = id
self.student_id = student_id
self.student_email = student_email
self.subscription_date = subscription_date
self.expiry_date = expiry_date
self.is_active = is_active
self.planname = planname
self.package_price = package_price
self.coupon = coupon
如何等視圖中更新這些:
from models import Package
@app.route('/somelink', methods=['POST'])
def somefunc():
if studentdidsomething:
planname = 'somename'
db.session.commit(planname)
return render_template('sometemplate.html')
我需要直接與數據庫表中的工作,所以這就是爲什麼困惑,因爲瓶中有許多形式的口味。 Wtf表單,Alchemyforms和表單。請指教。
所以我只需要一個參考來創建/更改所有模型字段的詳細信息?最後兩句話也讓我對你的帖子感到困惑。你的意思是如果我在@ app.route中調用package_id,那麼現有的包會被創建?只是最後一個問題,它會確定當前用戶登錄的更改嗎? –
如果您向url'/ somelink/12'發送了一個post請求,您將更改id爲12的包。如果您向url'/ somelink /'發送了一個post請求(您沒有傳遞包id)包將被創建。 – MrLeeh