python会议室系统预定_python项目篇-酒店(会议室,电影)预定
1、views.py中
from django.shortcuts import render,redirect,HttpResponse
# Create your views here.
from django.contrib import auth
def login(request):
if request.method=="POST":
user=request.POST.get("user")
pwd=request.POST.get("pwd")
user=auth.authenticate(username=user,password=pwd)
if user:
auth.login(request,user) # request.user
return redirect("/index/")
return render(request,"login.html")
from .models import *
import datetime
def index(request):
date=datetime.datetime.now().date()
book_date=request.GET.get("book_date",date)
print("book_date",book_date)
time_choices=Book.time_choices
room_list=Room.objects.all()
book_list=Book.objects.filter(date=book_date)
print("time_choices",time_choices)
htmls=""
for room in room_list:
htmls+="
{}({})".format(room.caption,room.num)
for time_choice in time_choices:
book=None
flag=False
for book in book_list:
if book.room.pk==room.pk and book.time_id==time_choice[0]:
#意味这个单元格已被预定
flag=True
break
if flag:
if request.user.pk==book.user.pk:
htmls += "{}".format(room.pk, time_choice[0],book.user.username)
else:
htmls += "{}".format(room.pk, time_choice[0],
book.user.username)
else:
htmls+="".format(room.pk,time_choice[0])
htmls+=""
# print(htmls)
return render(request,"index.html",locals())
import json
def book(request):
# print("request.POST",request.POST)
post_data=json.loads(request.POST.get("post_data")) # {"ADD":{"1":["5"],"2":["5","6"]},"DEL":{"3":["9","10"]}}
# print("post_data", post_data)
choose_date=request.POST.get("choose_date")
res={"state":True,"msg":None}
try:
# 添加预定
#post_data["ADD"] : {"1":["5"],"2":["5","6"]}
book_list=[]
for room_id,time_id_list in post_data["ADD"].items():
for time_id in time_id_list:
book_obj=Book(user=request.user,room_id=room_id,time_id=time_id,date=choose_date)
book_list.append(book_obj)
Book.objects.bulk_create(book_list)
# 删除预定
from django.db.models import Q
# post_data["DEL"]: {"2":["2","3"]}
# print("post_data['DEL']:", post_data["DEL"].items())
remove_book = Q()
for room_id,time_id_list in post_data["DEL"].items():
temp = Q()
for time_id in time_id_list:
temp.children.append(("room_id",room_id))
temp.children.append(("time_id",time_id))
temp.children.append(("user_id",request.user.pk))
temp.children.append(("date",choose_date))
remove_book.add(temp,"OR")
if remove_book:
Book.objects.filter(remove_book).delete()
except Exception as e:
res["state"]=False
res["msg"]=str(e)
return HttpResponse(json.dumps(res))
2、HTML
Index
酒店房间预定
房间/时间
{% for time_choice in time_choices %}
{{ time_choice.1 }}
{% endfor %}
{{ htmls|safe }}
保存
3、model.py中
from django.db import models
# Create your models here.
from django.db import models
from django.contrib.auth.models import AbstractUser
class UserInfo(AbstractUser):
tel=models.CharField(max_length=32)
class Room(models.Model):
"""
会议室表
"""
caption = models.CharField(max_length=32)
num = models.IntegerField() # 容纳人数
def __str__(self):
return self.caption
class Book(models.Model):
"""
会议室预定信息
"""
user = models.ForeignKey('UserInfo',on_delete=models.CASCADE)
room = models.ForeignKey('Room',on_delete=models.CASCADE)
date = models.DateField()
time_choices = (
(1, '8:00'),
(2, '9:00'),
(3, '10:00'),
(4, '11:00'),
(5, '12:00'),
(6, '13:00'),
(7, '14:00'),
(8, '15:00'),
(9, '16:00'),
(10, '17:00'),
(11, '18:00'),
(12, '19:00'),
(13, '20:00'),
)
time_id = models.IntegerField(choices=time_choices)
class Meta:
unique_together = (
('room','date','time_id'),
)
def __str__(self):
return str(self.user)+"预定了"+str(self.room)
里面用到一个日历插件datetimepicker
效果图
python会议室系统预定_python项目篇-酒店(会议室,电影)预定相关推荐
- [转载] python的系统模块_Python操作系统模块
参考链接: 带有示例的Python中的OS模块 python的系统模块 Python OS module provides easy functions that allow us to intera ...
- python的系统模块_Python操作系统模块
python的系统模块 Python OS module provides easy functions that allow us to interact and get Operating Sys ...
- 多媒体会议室系统有哪些功能,小型会议室系统解决方案
2019年,预计会议协作需求将持续增长,创建多功能会议室促进本地.异地协作仍然是一个强大的趋势.无论空间大小或距离远近,政府部门.企业单位以及团体组织为了实现决策指令畅通.管理层次分明,需要通过对会议 ...
- python项目篇-酒店(会议室,电影)预定
1.views.py中 from django.shortcuts import render,redirect,HttpResponse# Create your views here.from d ...
- python嵌入式系统开发_Python在嵌入式项目中辅助开发.PDF
22 SYSPRACTICE 系统实践 on在嵌入式项目中的辅助开发 Pyth 彭树林 摘要:嵌入式系统设计开发过程中常会遇到诸如算法分析.原型验证.自动化测试.辅助工具设计等工作,其 开发效率和质量 ...
- python外星人实验报告_Python 项目实践一(外星人入侵)第一篇
python断断续续的学了一段实践,基础课程终于看完了,现在跟着做三个小项目,第一个是外星人入侵的小游戏: 一 Pygame pygame 是一组功能强大而有趣的模块,可用于管理图形,动画乃至声音,让 ...
- python学生管理系统教学_Python项目:学生信息管理系统(完整版)
本文是基于上一篇(python项目:学生信息管理系统(初版))进行了完善,并添加了新的功能. 主要包括有: 学生信息管理系统(完整版) 学生信息管理项目,要求带操作界面,并完成每项操作: +----- ...
- python 自动编写新闻_Python多篇新闻自动采集
昨天用python写了一个天气预报采集,今天趁着兴头写个新闻采集的. 目标是,将腾讯新闻主页上所有新闻爬取下来,获得每一篇新闻的名称.时间.来源以及正文. 接下来分解目标,一步一步地做. 步骤1:将主 ...
- python嵌入式系统开发_python能开发单片机吗
Python已经逐渐成为热门编程语言的"座上宾",同时它也是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言. 因此也就出现了将Pyth ...
最新文章
- java 注解 payload_spring – 如何使用注释配置PayloadValidatingInterceptor
- 日常开发技巧:使用notify-send发送通知
- wxWidgets:wxAuiManager类用法
- SegmentFault 高阳:从开发者到创业者
- 论文浅尝 - COLING2020 | 一种用于跨语言实体对齐的上下文对齐强化跨图谱注意力网络...
- Chap-4 Section 4.2.4 指令修正方式
- CentOS 7添加开机启动服务脚本
- 2017.6.27 跟开涛学spring3--spring概述
- layui生产管理系统_ssm开发生产制造业MES系统源码
- 重做《机房收费系统》——概要设计(UI)
- 使用Python对Syslog信息进行分析并绘图
- Java(38)_BorderLayout布局
- 2.ELK stack 集群 搭建
- C语言开定时器做呼吸灯程序,单片机制作呼吸灯的C语言程序怎么样编写
- 数数(数学题运算分配律)
- 解决Photoshop CS3 输入中文不能显示 输入文字不能显示 输入文字显示缓慢
- 测评 | 谷歌智能耳机Pixel Buds体验:耳朵里的语音助手
- Spring的sessionFactory配置详解
- 怎样剪切视频中的一段音频
- linux下面ps命令,Linux下修改后的ps命令,很好很强大!
热门文章
- 如何在Linux上安装Composer
- Security:CSRF
- mysql innodb 并发 插入 慢_Innodb 锁机制——一次插入慢查询的排查
- java基础学不会_java基础
- java中oriqinal_Java集合10 (NavigableMap)
- java截取字符串拼接_java截取字符串并拼接
- oracle12c双机热备方案,Oracle 共享磁盘阵列 双机热备 实战 配置教程 配置手册
- c5.0 java_机器学习-AdaBoosting及其Java实现
- mysql的原理图解_MySQL排序工作原理
- 多少人举报才封手机号_一个人赚多少钱,才敢回家过年?