基于 Python + Django 的大学生自习室预约系统
基于 Python 和 Django 框架开发的自习室预约系统,提供用户注册登录、自习室浏览、座位预约、签到及管理员后台管理功能。技术栈包含 Django 3.2、MySQL、Bootstrap 5 等。系统支持按日期时段预约座位,具备黑名单管理及数据统计能力。代码遵循 PEP 8 规范,结构清晰,适合作为课程设计或学习参考项目。

基于 Python 和 Django 框架开发的自习室预约系统,提供用户注册登录、自习室浏览、座位预约、签到及管理员后台管理功能。技术栈包含 Django 3.2、MySQL、Bootstrap 5 等。系统支持按日期时段预约座位,具备黑名单管理及数据统计能力。代码遵循 PEP 8 规范,结构清晰,适合作为课程设计或学习参考项目。

study_room_booking/
├── accounts/ # 用户管理应用
│ ├── models.py # 用户模型、黑名单模型
│ ├── views.py # 注册、登录、个人资料视图
│ ├── forms.py # 用户表单
│ └── admin.py # Admin 后台配置
├── rooms/ # 自习室管理应用
│ ├── models.py # 自习室、座位模型
│ ├── views.py # 自习室列表、详情视图
│ └── admin.py # Admin 后台配置
├── bookings/ # 预约管理应用
│ ├── models.py # 预约、签到模型
│ ├── views.py # 预约、签到视图
│ ├── forms.py # 预约表单
│ └── admin.py # Admin 后台配置
├── templates/ # 模板文件
│ ├── base.html # 基础模板
│ ├── home.html # 首页
│ ├── accounts/ # 用户相关模板
│ ├── rooms/ # 自习室相关模板
│ └── bookings/ # 预约相关模板
├── static/ # 静态文件
│ ├── css/ # 样式文件
│ ├── js/ # JavaScript 文件
│ └── images/ # 图片资源
├── media/ # 媒体文件(用户上传)
│ ├── avatars/ # 用户头像
│ └── room_images/ # 自习室图片
└── study_room_booking/ # 项目配置
├── settings.py # 项目设置
├── urls.py # URL 路由
└── wsgi.py # WSGI 配置
cd /path/to/your/project
pip install -r requirements.txt
创建 MySQL 数据库:
CREATE DATABASE study_room_booking CHARACTERSET utf8mb4 COLLATE utf8mb4_unicode_ci;
修改 study_room_booking/settings.py 中的数据库配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'study_room_booking',
'USER': 'your_mysql_user',
'PASSWORD': 'your_mysql_password',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
}
}
}
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
按提示输入用户名、学号、邮箱和密码。
python manage.py runserver 0.0.0.0:8000
访问 http://localhost:8000 查看系统。
http://localhost:8000/adminaccounts_user: 用户表(扩展自 Django User)accounts_blacklist: 黑名单表rooms_studyroom: 自习室表rooms_seat: 座位表bookings_booking: 预约表bookings_checkin: 签到表检查 MySQL 服务是否启动,数据库配置是否正确。
确保执行了 collectstatic 命令,并检查 STATIC_ROOT 配置。
检查 MEDIA_ROOT 目录权限,确保 Django 有写入权限。
系统默认使用 Asia/Shanghai 时区,可在 settings.py 中修改 TIME_ZONE 配置。
本项目仅供学习交流使用。不得商用。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online