基于HTML5/JS的在线预约系统实现


正文:

在日常的工作和学习中,预约服务是一个非常常见的需求。本项目旨在构建一个支持用户输入、保存记录、实时查询预约功能的在线预约系统,利用HTML5、CSS3和JavaScript技术实现。

1. 思路分析

本系统需要处理用户输入的日期信息,并保存记录。首先需要验证输入的日期格式是否符合YYYY-MM-DD的格式,例如检查年份、月份和日期是否正确。数据存储和读写功能需要使用JSON格式,方便后续处理和查询。实时展示记录需要在前端页面上显示,查询功能则通过接口调用实现,支持用户输入参数并返回结果。此外,系统还包含时间戳校验逻辑,验证用户输入的时间是否在最近的记录中。

2. 代码实现

2.1 系统框架结构

import datetime

# 定义预约记录的JSON数据类型
class Appointment:
    def __init__(self, name, date, time):
        self.name = name
        self.date = datetime.date.strptime(date, "%Y-%m-%d")
        self.time = datetime.datetime.strptime(time, "%H:%M").time()
        self.status = "成功"

# 验证用户输入的日期格式
def validate_date(input_date_str):
    try:
        date_obj = datetime.datetime.strptime(input_date_str, "%Y-%m-%d")
        if date_obj.hour < 0 or date_obj.minute < 0 or date_obj.second < 0:
            raise ValueError("日期时间格式不正确,必须包含小时和分钟")
        return True
    except ValueError:
        return False

# 保存预约记录到JSON文件
def save_appointment(appointment):
    with open("appointments.json", "w") as f:
        f.write(json.dumps(appointment, indent=2))

# 查询预约记录
def query_appointments():
    with open("appointments.json", "r") as f:
        return json.load(f)

# 示例应用
if __name__ == "__main__":
    # 示例输入
    name = "张三"
    date_input = input("请输入日期:")  # 例如:2023-04-15
    time_input = input("请输入时间:")  # 例如:18:00

    # 验证日期
    if not validate_date(date_input):
        print("日期格式不正确,请重新输入")
        return

    # 保存记录
    appointment = Appointment(name, date_input, time_input)
    save_appointment(appointment)

    print("预约记录已保存,张三于2023-04-15 18:00成功预约。")

3. 实时预约记录展示

在前端页面中,通过JavaScript实现记录的展示功能。例如:

<!DOCTYPE html>
<html>
<head>
    <title>预约记录</title>
    <style>
        #appointment-list {
            list-style-type: none;
            padding: 0;
            margin: 0;
        }
        li {
            padding: 8px 10px;
            margin: 5px 0;
        }
    </style>
</head>
<body>
    <h1>预约记录</h1>
    <ul id="appointment-list">
        <li id="app1"><strong>张三</strong> 2023-04-15 18:00</li>
    </ul>

    <script>
        const list = document.getElementById('appointment-list');
        const app = query_appointments();

        app.forEach(appointment => {
            list.innerHTML += `
                <li id="app${appointment.id}">${appointment.name} ${appointment.date.strftime('%Y-%m-%d')} ${appointment.time.strftime('%H:%M')}</li>
            `;
        });
    </script>

4. 项目说明

该系统采用HTML5、CSS3和JavaScript实现,包含以下核心功能:
– 用户输入验证机制
– 数据存储与读写功能
– 实时预约记录展示
– 查询预约记录的接口调用
– 简单的人工智能逻辑(时间戳校验)
– 独立运行于本地环境

5. 总结

本项目通过Python实现一个在线预约系统,支持用户输入日期时间并保存记录,同时提供查询功能。代码可运行在本地环境中,适合中级开发者学习线程池处理预约请求。系统采用JSON格式存储数据,验证日期格式正确性,实现简单的人工智能逻辑,确保系统稳定可靠。