再来看看views.py的后半部分,对数据库的增删改查

#获取学院列表
def get_acad_list():
room_list = ConfeRoom.objects.all() #对数据库的操作
acad_list = set()
for room in room_list:
acad_list.add(room.acad)
return list(acad_list)
#查看会议室
def viewroom(req):
username = req.session.get('username', '')
if username != '':
user = MyUser.objects.get(user__username=username)
else:
user = ''
acad_list=get_acad_list()
room_acad = req.GET.get("acad","all") #从前台点击选择学院,
if room_acad not in acad_list: #如果没有就全部显示
room_acad = "all"
room_list=ConfeRoom.objects.all()
else:
room_list=ConfeRoom.objects.filter(acad=room_acad)#只显示选定学院的会议室
content = {"active_menu":'viewroom',"acad_list":acad_list,"room_acad":room_acad,"room_list":room_list,"user":user}
return render_to_response('viewroom.html',content,context_instance=RequestContext(req))
#会议室详情
def detail(req):
username = req.session.get('username','')
if username != '':
user = MyUser.objects.get(user__username=username)
else:
user = ''
Id = req.GET.get("id","") #获得会议室主键ID号
req.session["id"]=Id
if Id == "":
return HttpResponseRedirect('/viewroom/')
try:
room = ConfeRoom.objects.get(pk=Id)#根据ID显示详细信息
ro =Detail.objects.get(pk=Id)
except:
return HttpResponseRedirect('/viewroom/')
img_list = Detail.objects.filter(room=room)
num_list = get_order_list()
if room.num not in num_list: #判断是否被预定,给定状态,给前台显示是否可以预定
or_sta="yes"
else:
or_sta="no"
content = {"active_menu":"viewroom","room":room,"img_list":img_list,"ro":ro,"or_sta":or_sta,"user":user}
return render_to_response('detail.html',content)
#预定
#获取预定列表
def get_order_list():
num_list=set()
order_list=Order.objects.all()
for order in order_list:
num_list.add(order.num)
return list(num_list)
def order(req):
username = req.session.get('username','')
if username != '':
user = MyUser.objects.get(user__username=username)
else:
user = ''
roid = req.session.get("id","") #预定,将数据保存到数据库
room = ConfeRoom.objects.get(pk=roid)
time = Detail.objects.get(name=room.name)
u = MyUser.objects.get(user__username=username)
order = Order(user=username,num=room.num,name=room.name,time=time.time,size=room.size,phone=u.phone)
order.save()
return render_to_response("index2.html",{"user":user},context_instance=RequestContext(req))
#查看预定信息
def myorder(req):
username = req.session.get('username','')
if username != '':
user = MyUser.objects.get(user__username=username)
else:
user = ''
try:
my_order=Order.objects.all() #索引数据库查看已预订信息
us_sta = "no"
return render_to_response("myorder.html",{"myorder":my_order,"us_sta":us_sta,"user":user},context_instance=RequestContext(req)) except:
us_sta = "yes"
return render_to_response("myorder.html",{"us_sta":us_sta,"user":user},context_instance=RequestContext(req))
#取消预定
def cancel(req):
username = req.session.get('username','')
if username != '':
user = MyUser.objects.get(user__username=username)
else:
user = ''
Id = req.GET.get("id","") #取消预订,删除数据
room =Order.objects.get(pk=Id)
room.delete()
return render_to_response("index.html",context_instance=RequestContext(req))

通过查django文档和学习别人的博客终于是把它写出来了,但是觉得有的地方还是写的不是很好,以后有时间再学习修改吧。

一个简单的预定过程完成了,虽然很简单但是我从中确实学到不少东西。

django 简单会议室预约(5)的更多相关文章

  1. django 简单会议室预约(6)

    后台完了现在来看前端,前端用了一个bootstrap框架,看起来能好看点 先看一下文件结构:在djapp里创建了两个文件夹templates和static templates里面是要显示的页面,sta ...

  2. django 简单会议室预约(4)

    基本的配置已经完成了,来看看最重要的views.py 先看看简单的注册登录功能,在django里有一个专门的模块用来验证用户信息 :所以只需要调用就好了: #-*-coding:utf-8 -*- f ...

  3. django 简单会议室预约(2)

    --我们先打开settings.py 配置文件: import os #指明django APP目录路径 BASE_DIR = os.path.dirname(os.path.dirname(os.p ...

  4. django 简单会议室预约(1)

    django 是python的一个web框架,为什么要用django,作者之前用过另一个框架flask,虽然flask比较简单很容易让人学,但是flask没有整体感,会让初学着茫然. 这里我们用dja ...

  5. django 简单会议室预约(3)

    URL配置: 今天配置一下URL,打开urls.py配置如下: from django.conf.urls import patterns, include, url from djapp impor ...

  6. DJango简单的后台定义登录验证

    第一步创建一个新的项目 APPLICATIONNAME : 表示创建子项目 第二步:找到主项目的url 进行 include 分发式url 简单的说,就是将app里边的url放在这里. 这里也可以找到 ...

  7. 基于django的会议室预订系统

    会议室预订系统 一.目标及业务流程 期望效果: 业务流程: 用户注册 用户登录 预订会议室 退订会议室 选择日期:今日以及以后日期 二.表结构设计和生成 1.models.py(用户继承Abstrac ...

  8. Django简单的数据库操作

    当然,本篇的前提是你已经配置好了相关的环境,这里就不详细介绍. 一. 在settings.py文件中设置数据库属性. 如下: DATABASES = { 'default': { 'ENGINE': ...

  9. 循序渐进Python3(十二) --2--  web框架之django简单实现oracle数据库操作

    在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接.             产能在软 ...

随机推荐

  1. BZOJ 3211 线段树+并查集

    思路: 我们很容易发现 一个数开根号 开几(很小)次 就到了1 1 再怎么开 都是1 由于这个性质 我们就可以用并查集 了 //By SiriusRen #include <cmath> ...

  2. iRedMail邮件系统配置简易视频安装教程

    iRedMail邮件系统配置简易视频安装教程        iRedMail邮件系统配置简易视频安装教程 iRedMail中文名为“艾瑞得邮件系统”, 属于开源的企业邮件解决方案,但其性能不逊于任何商 ...

  3. openSUSE leap 42.3 添加HP Laserjet Pro M128fn打印机和驱动

    一.安装驱动 YaST控制中心->软件管理->搜索->hplip 安装hplip 如下图: HPLIP(Linux Imaging and Printing Object)以前有hp ...

  4. angularjs input使用ng-model双向绑定无效bug解决

    一.问题描述 当我们给input双向绑定变量的时候,使用ng-model有时候会出现无效的情况 二.解决办法 将绑定的变量写成对象的形式 控制器定义变量: $scope.inputText = {va ...

  5. uniq---报告或忽略文件中的重复行

    uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用. 语法 uniq(选项)(参数) 选项 -c或——count:在每列旁边显示该行重复出现的次数: -d或--repeated:仅显 ...

  6. Redis 数据持久化的方案的实现

    原文:Redis 数据持久化的方案的实现 版权声明:m_nanle_xiaobudiu https://blog.csdn.net/m_nanle_xiaobudiu/article/details/ ...

  7. 【Henu ACM Round#15 A】 A and B and Chess

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 统计大写和小写的个数. 比较答案.输出即可. [代码] #include <bits/stdc++.h> using n ...

  8. CCF模拟题 字符串匹配

    字符串匹配 时间限制: 1.0s 内存限制: 256.0MB 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写 ...

  9. 父类与子类的virtual

    父类加了virtual,子类不需要加virtual,多余.加了也不会报错. 父类中不是virtual,子类是virtual,那么父类中的不是虚函数,子类及子子类的派生类中该函数才是虚函数

  10. js实现table排序(jQuery下的jquery.sortElements)

    项目中要实现table排序的功能. 网上有非常多解决方式,非常多都基于jQuery. jquery.tablesorter.大小17KB.只是他的首页在ie10下兼容性有点问题. DataTables ...