将Python wtform datetime与sqlalchemy和sqlite一起使用的示例

2024-09-27 07:33:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用wtform datetime创建一个表单,该表单接受带有日期选择器的日期

form.py
class RegistrationForm(FlaskForm):
    eventname = StringField('Event Name', validators=[DataRequired()])
    eventstart = DateField(
        'Enter start date and time', id='datepick', validators=[DataRequired()]
     )

这将正确呈现日期和时间选择器。但是,我不理解如何使用sqlalchemy和sqlite将其转换为正确的格式。提交时,它似乎没有进行验证。当我添加一个print(events)时,输出是{}

view.py
@events_blueprint.route('/add', methods=['GET', 'POST'])
def register():

    form = RegistrationForm()
    print(form.errors)

    if form.validate_on_submit():
        event = Events(
            eventname=form.eventname.data,
            eventstart=form.eventstart.data,
            # eventstop=form.eventstop.data,
        )

        db.session.add(event)
        db.session.commit()
        flash("Thank you for registering your event.")

    return render_template('add.html', form=form)
class Events(db.Model):

    __tablename__ = 'events'
    id = db.Column(db.Integer, primary_key=True)
    eventname = db.Column(db.Text(64), unique=True, index=True)
    eventstart = db.Column(db.Text, nullable=False)
    #  This is a one-to-many connection with Eventdetails database
    details = db.relationship('Eventdetails', backref='event', lazy='dynamic')

    def __init__(
        self, eventname, eventstart
    ):
        self.eventname = eventname
        self.eventstart = eventstart


    def __repr__(self):
        return f"{self.eventname}"

如果能为我指明正确的方向,我将不胜感激。最后,我想考虑时区和事件结束时间,这样我就有了一个时间范围


Tags: selfformeventaddtrue表单dbdata

热门问题