我正在尝试用Flask应用程序在date.time上执行一些计算和逻辑。1.(申请将计算发行日期和到期日期之间的差额,称为"到期日";剩余天数",应用程序将检查剩余天数是否小于365天,并触发功能
我尝试了第一个逻辑来操作数据并提交到数据库
`@bp.route('/ceracs/add',methods=['GET','POST'](@login_必需def add_cerpac((:"quot"将Cerpac/expartariates添加到数据库"quot"check_admin((add_cerpac=真
form =CerpacForm()
if form.validate_on_submit():
cerpac = Cerpac(cerpac_serial_no=form.cerpac_serial_no.data,
cerpac_issue_date= form.cerpac_issue_date.data,
cerpac_exp_date=form.cerpac_exp_date.data,
employee =form.employee.data, )
form.cerpac_issue_date.data = cerpac.cerpac_issue_date
form.cerpac_exp_date.data = cerpac.cerpac_exp_date
if request.method == 'POST':
todays_date = datetime.now()
t = cerpac.cerpac_issue_date
t1 = cerpac.cerpac_exp_date
remaining_days = t1 - t
print(remaining_days) - good prints my result!
remaining_days = cerpac.remaining_days ----not adding to database
try:
add cerpac to the database
db.session.add(cerpac)
db.session.commit()
flash('You have successfully added a Cerpac.' )`
`我的型号:
class Cerpac(db.Model):
__tablename__ = 'cerpacs'
id = db.Column(db.Integer, primary_key=True)
cerpac_issue_date = db.Column(db.DateTime)
cerpac_exp_date=db.Column(db.DateTime)
remaining_days = db.Column(db.DateTime)
cerpac_serial_no = db.Column(db.String(60))
cerpac_upload = db.Column(db.String(20), default='cerpac.jpg')
renew_status = db.Column(db.Boolean, default=False)
process_status = db.Column(db.Boolean, default=False)
renewcerpac_id = db.Column(db.Integer, db.ForeignKey('renewcerpacs.id'))
employee_id = db.Column(db.Integer, db.ForeignKey('employees.id'))
def __repr__(self):
return '<Cerpac {}>'.format(self.name) model:
我想把它添加到数据库中,并最终编写一个函数,如下所示:我在代码中也有一个错误,因为我没有定义错误issue_date。如何将issue_date定义为date.time变量?
def remaining_days(issue_date, expired_date):
issue_date = datetime(issue_date)
days_to_go = expired - issue
if days_to_go == 365:
renew_status== True
print("time to renew")
print("We are Ok")
我会将其简化为:
from datetime import datetime
class Cerpac(db.Model):
...
cerpac_exp_date=db.Column(db.DateTime)
...
@property
def remaining_days(self):
return (self.cerpac_exp_date - self.cerpac_issue_date).days
@property
def days_to_expiry(self):
return (self.cerpac_exp_date - datetime.now()).days
然后,days_to_expiry
和remaining_days
将成为查询时计算的属性,并在续订卡时自动更新。