我正在为运输公司开发一个应用程序,并且在客户端页面上,我们可以添加“交付之旅”,并且可以在不同的日期和时间计划这些交付之旅:
示例:
计划在周一的下午4点和周四的上午10点进行送货游览。
当前,我将其以JSON格式存储在我的SQLAlchemy Delivery Tour数据库中:
{'星期一':10,'星期四':16}
但是问题是,当我渲染HTML文件时,无法成功遍历JSON文件,并且无法将正确的日期和时间与正确的“交付之旅”相关联...
所以我想知道是否有更有效的方法来做到这一点?就像创建一个新表一样,但我不知道如何安排列。
编辑
我的HTML:
<div class="card">
<div class="card-header-spe">
<p style="text-align:left;">
Delivery Tour
<span style="float:right;">
<a class=" card-category btn btn-primary" href="{{ url_for('deliver', client_id=client.id )}}">Add New</a>
</span>
</p>
</div>
<table class="table table-striped table-hover">
<thead>
<tr>
<th scope="col">Title</th>
<th scope="col">Description</th>
<th scope="col">Schedule</th>
<th scope="col">Driver</th>
</tr>
</thead>
<tbody>
<tr>
{% for deliv in delivery %}
<th scope="row">{{ deliv.title }}</th>
<td>{{ deliv.description }}</td>
<td >{{ deliv.schedule }} </td>
{% if deliv.driver_assigned %}
{% for d in driver %}
{% if d.id == deliv.driver_assigned %}
<td>{{d.first_name}}</td>
{% endif %}
{% endfor %}
{% else %}
<td></td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
答案 0 :(得分:1)
您已经具备了基本知识:
{% for day, hour in eval(deliv.schedule).items() %}
您必须进行评估,因为除非我错了,否则您会将该列存储为表中的字符串。
如果是我,我会为时间表创建一个表,并与您的delivery_tour表建立一对多关系:(注意:放下 schedule
< em>您的delivery_tour表上的列)
class TourSchedule(Base):
__tablename__ = 'tour_schedules'
id = Column(Integer, primary_key=True)
tour_id = Column(Integer, ForeignKey('delivery_tour.id'))
tour = relationship('DeliveryTour', backref='schedule')
day = Column(String(16))
hour = Column(Integer)
然后,您可以像其他方式那样遍历它:
<td>
<ul style="list-style-type: none;">
{% for sched in deliv.schedule %}
<li>{{sched.day}}: {{sched.hour}}</li>
{% endfor %}
</ul>
</td>