gpt4 book ai didi

python - 如何使用 WTForms 制作具有唯一 id 的多个复选框,以便可以将其存储在架子上?

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:24 26 4
gpt4 key购买 nike

如何使用 WTForms 制作多个复选框并将其呈现到我的 html 页面?这就是我使用 WTForms 想到的,但我被告知通过使用 Boolean(True,False) 它将仅适用于一个复选框而不是多个复选框。我如何将选定的复选框附加到字典中有一个唯一的 ID 吗?

我对 python、flask 和 WTForms 很陌生。感谢您抽出时间来帮助我。给我一些建议/指南来帮助我解决这个问题也很好。

A preview of my HTML doctor booking page

 

{% extends 'layout.html' %}
{% block body %}



<link rel="stylesheet" type="text/css" href="/static/css/appointment.css">
<div class="jumbotron">
<div class="container text-center">
<div id="head">
<h1>{{ title }}</h1>
</div>

<div id="head-p"> <p> Doctor Opening Hours Slot </p> </div>

</div>
</div>



<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading"> <h3> Doctor Admin Page </h3> </div>
<div id="appointment_box">


</div>


<form>
<table class="table table-bordered">
<thead>
<tr>
<th> Monday </th>
<td id="m1" style="background-color:lightgrey"> {{dform.active}} 8 : 00 </td>
<td id="m2" style="background-color:lightgrey"> {{dform.active}} 9 : 00</td>
<td id="m3" style="background-color:lightgrey"> {{dform.active}} 10 : 00 </td>
<td id="m4" style="background-color:lightgrey"> {{dform.active}} 11 : 00</td>
<td id="m5" style="background-color:lightgrey"> {{dform.active}} 12 : 00</td>
<td id="m6" style="background-color:lightgrey"> {{dform.active}} 13 : 00</td>
<td id="m7" style="background-color:lightgrey"> {{dform.active}} 14 : 00</td>
<td id="m8" style="background-color:lightgrey"> {{dform.active}} 15 : 00</td>
<td id="m9" style="background-color:lightgrey"> {{dform.active}} 16 : 00</td>
<td id="m10" style="background-color:lightgrey"> {{dform.active}} 17 : 00</td>
<td id="m12" style="background-color:lightgrey"> {{dform.active}} 18 : 00</td>
</tr>

<tr>
<th> Tuesday </th>
<td id="t1" style="background-color:lightgrey"> {{dform.active}} 8 : 00 </td>
<td id="t2" style="background-color:lightgrey"> {{dform.active}} 9 : 00</td>
<td id="t3" style="background-color:lightgrey"> {{dform.active}} 10 : 00 </td>
<td id="t4" style="background-color:lightgrey"> {{dform.active}} 11 : 00</td>
<td id="t5" style="background-color:lightgrey"> {{dform.active}} 12 : 00</td>
<td id="t6" style="background-color:lightgrey"> {{dform.active}} 13 : 00</td>
<td id="t7" style="background-color:lightgrey"> {{dform.active}} 14 : 00</td>
<td id="t8" style="background-color:lightgrey"> {{dform.active}} 15 : 00</td>
<td id="t9" style="background-color:lightgrey"> {{dform.active}} 16 : 00</td>
<td id="t10" style="background-color:lightgrey"> {{dform.active}} 17 : 00</td>
<td id="t11" style="background-color:lightgrey"> {{dform.active}} 18 : 00</td>
</tr>

<tr>
<th> Wednesday </th>
<td id="w1" style="background-color:lightgrey"> {{dform.active}} 8 : 00 </td>
<td id="w2" style="background-color:lightgrey"> {{dform.active}} 9 : 00</td>
<td id="w3" style="background-color:lightgrey"> {{dform.active}} 10 : 00 </td>
<td id="w4" style="background-color:lightgrey"> {{dform.active}} 11 : 00</td>
<td id="w5" style="background-color:lightgrey"> {{dform.active}} 12 : 00</td>
<td id="w6" style="background-color:lightgrey"> {{dform.active}} 13 : 00</td>
<td id="w7" style="background-color:lightgrey"> {{dform.active}} 14 : 00</td>
<td id="w8" style="background-color:lightgrey"> {{dform.active}} 15 : 00</td>
<td id="w9" style="background-color:lightgrey"> {{dform.active}} 16 : 00</td>
<td id="w10" style="background-color:lightgrey"> {{dform.active}} 17 : 00</td>
<td id="w11" style="background-color:lightgrey"> {{dform.active}} 18 : 00</td>
</tr>
<tr>
<th> Thursday </th>
<td id="th1" style="background-color:lightgrey"> {{dform.active}} 8 : 00 </td>
<td id="th2" style="background-color:lightgrey"> {{dform.active}} 9 : 00</td>
<td id="th3" style="background-color:lightgrey"> {{dform.active}} 10 : 00 </td>
<td id="th4" style="background-color:lightgrey"> {{dform.active}} 11 : 00</td>
<td id="th5" style="background-color:lightgrey"> {{dform.active}} 12 : 00</td>
<td id="th6" style="background-color:lightgrey"> {{dform.active}} 13 : 00</td>
<td id="th7" style="background-color:lightgrey"> {{dform.active}} 14 : 00</td>
<td id="th8" style="background-color:lightgrey"> {{dform.active}} 15 : 00</td>
<td id="th9" style="background-color:lightgrey"> {{dform.active}} 16 : 00</td>
<td id="th10" style="background-color:lightgrey"> {{dform.active}} 17 : 00</td>
<td id="th11" style="background-color:lightgrey"> {{dform.active}} 18 : 00</td>
</tr>


<tr>
<th> Friday </th>
<td id="f1" style="background-color:lightgrey"> {{dform.active}} 8 : 00 </td>
<td id="f2" style="background-color:lightgrey"> {{dform.active}} 9 : 00</td>
<td id="f3" style="background-color:lightgrey"> {{dform.active}} 10 : 00 </td>
<td id="f4" style="background-color:lightgrey"> {{dform.active}} 11 : 00</td>
<td id="f5" style="background-color:lightgrey"> {{dform.active}} 12 : 00</td>
<td id="f6" style="background-color:lightgrey"> {{dform.active}} 13 : 00</td>
<td id="f7" style="background-color:lightgrey"> {{dform.active}} 14 : 00</td>
<td id="f8" style="background-color:lightgrey"> {{dform.active}} 15 : 00</td>
<td id="f9" style="background-color:lightgrey"> {{dform.active}} 16 : 00</td>
<td id="f10" style="background-color:lightgrey"> {{dform.active}} 17 : 00</td>
<td id="f11" style="background-color:lightgrey"> {{dform.active}} 18 : 00</td>
</tr>

<tr>
<th> Saturday </th>
<td id="s1" style="background-color:lightgrey"> {{dform.active}} 8 : 00 </td>
<td id="s2" style="background-color:lightgrey"> {{dform.active}} 9 : 00</td>
<td id="s3" style="background-color:lightgrey"> {{dform.active}} 10 : 00 </td>
<td id="s4" style="background-color:lightgrey"> {{dform.active}} 11 : 00</td>
<td id="s5" style="background-color:lightgrey"> {{dform.active}} 12 : 00</td>
<td id="s6" style="background-color:lightgrey"> {{dform.active}} 13 : 00</td>
<td id="s7" style="background-color:lightgrey"> {{dform.active}} 14 : 00</td>
<td id="s8" style="background-color:lightgrey"> {{dform.active}} 15 : 00</td>
<td id="s9" style="background-color:lightgrey"> {{dform.active}} 16 : 00</td>
<td id="s10" style="background-color:lightgrey"> {{dform.active}} 17 : 00</td>
<td id="s11" style="background-color:lightgrey"> {{dform.active}} 18 : 00</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
<br>
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-11">


</div>
<div class="form-group col-md-1">
<input type="submit" value="Submit" class="btn btn-info"/>
</div>
</div>
</div>

</form>

</div>
</div>

{% endblock %}

from flask import Flask, render_template, request, flash, redirect, url_for, session
import shelve
# <<<<<<< HEAD
from wtforms import Form, StringField, BooleanField,TextAreaField,RadioField, SelectField, validators, PasswordField, DateField, SubmitField, \
IntegerField, FileField
from wtforms.validators import DataRequired
from datetime import date
import uuid
from wtforms import widgets, SelectMultipleField

app = Flask(__name__)

#this is my form!
class DoctorAppointment(Form):
active = BooleanField(True, False)


@app.route("/doctorbooking")
def doctorbooking():
doctor_form = DoctorAppointment(request.form)
if request.method == 'POST' and form.validate():
check_list = doctor_form.active.data
doctorappointment = Timeslots(day,check_list)

db_read = shelve.open("doctorappointment.db")

try:
doctorappointmentlist = db_read["doctorappointment"]

except:
doctorappointmentlist = {}

doctorappointmentlist[day] = check_list.data


db_read.close()


flash("Appointment added sucessfully!")

return render_template("DoctorBooking.html", title="Doctor Booking",dform = doctor_form)

最佳答案

如果有帮助,请告诉我。最后,返回一个字典(数据),其中包含选中的复选框的名称。

flask 代码:

@app.route('/index/', methods=['POST', 'GET'])
def index():
weekdays = ['Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun']
timeslots = ['8AM', '9AM', '10AM', '11AM', '12PM', '13PM', '14PM','15PM','16PM','17PM','18PM']

if request.method == "POST":
data = dict((key, request.form.getlist(key) if len(
request.form.getlist(key)) > 1 else request.form.getlist(key)[0])
for key in request.form.keys())
print (data) # do whatever you want with this data dict. Store it, flash messages, etc.

return render_template('index.html',
weekdays = weekdays,
timeslots = timeslots,
)

模板

<form method = "post" action = "">
<table class="table table-bordered">
<thead>
{% for weekday in weekdays %}
<tr>
<th> {{ weekday }} </th>
{% for timeslot in timeslots %}
<td><input id="{{ weekday+timeslot }}" type="checkbox" name="{{ weekday+timeslot }}">{{ timeslot }}</td>
{% endfor %}
</tr>
{% endfor %}
</thead>
</table>
<div class="form-group col-md-1">
<input type="submit" value="Submit" class="btn btn-info"/>
</div>
</form>

关于python - 如何使用 WTForms 制作具有唯一 id 的多个复选框,以便可以将其存储在架子上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53871445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com