选择任意你熟悉的编程语言开发一个C/S、B/S、B/A/S或基于移动设备的民航售票系统,实现基本功能
django随便写写,前端很粗糙,这个作业因为提交的时间比较赶,一个人花了几天的课后时间写,我也是python小白,刚学不久,基本功能实现了但是还有很多需要改进的地方,以后闲下来再修修,期末了先凑合着。
用户注册:
def register(request):
if request.session.get(‘is_login’,None):
return redirect(’/index/’)
if request.method == ‘POST’:
username = request.POST.get(‘Name’)
email = request.POST.get(‘Email’)
tel = request.POST.get(‘Tel’)
password = request.POST.get(‘password’)
confirm_password = request.POST.get(‘confirm_password’)
message = ‘请检查填写的内容!’
if password != confirm_password:
message = ‘两次输入密码不一致!’
return render(request,‘app01/register.html’,{‘message’: message})
else:
same_name_user = models.User.objects.filter(user=username)
if same_name_user:
message = ‘用户名已经存在’
return render(request, ‘app01/register.html’, {‘message’:message})
same_email_user = models.User.objects.filter(mail=email)
if same_email_user:
message = ‘该邮箱已经被注册了!’
return render(request, ‘app01/register.html’, {‘message’:message})
new_user = models.User()
new_user.user = username
new_user.passwd = password
new_user.mail = email
new_user.tel = tel
new_user.lx = “1”
new_user.save()
message = “注册成功!”
return render(request, ‘app01/register.html’,{‘message’:message})
return render(request,‘app01/register.html’)
登陆:
def login(request):
if request.session.get(‘is_login’, None): # 不允许重复登录
return redirect(’/index/’)
if request.method == ‘POST’:
username = request.POST.get(‘username’)
password = request.POST.get(‘password’)
message = ‘请检查填写的内容!’
if username.strip() and password:
try:
user = models.User.objects.get(user=username)
except :
message = ‘用户不存在!’
return render(request, ‘app01/login.html’, {‘message’: message})
if user.passwd == password:
print(username, password)
request.session[‘is_login’] = True
request.session[‘username’] = username
request.session.set_expiry(600) #保持600s
return redirect(’/index/’)
else:
message = ‘密码不正确!’
return render(request, ‘app01/login.html’, {‘message’: message})
else:
return render(request, ‘app01/login.html’, {‘message’: message})
return render(request, ‘app01/login.html’)
注销:
def logout(request):
if not request.session.get(‘is_login’, None):
return redirect("/index/")
request.session.clear()
return redirect(’/index/’)
航班查询:
def search(request):
if not request.session.get(‘is_login’,None):
return redirect(’/login/’)
tickets = models.Hb.objects.all().values()
if request.method == ‘POST’:
qds = request.POST.get(‘qd’)
zds = request.POST.get(‘zd’)
print(zds)
tickets_ = models.Hb.objects.filter(qd=qds,zd=zds)
print (tickets_)
return render(request,‘app01/search.html’,{‘hb’:tickets_})
return render(request,‘app01/search.html’,{‘hb’:tickets})
下单:
def gp(request):
if not request.session.get(‘is_login’, None):
return redirect(’/login/’)
if request.method == ‘POST’:
hb = request.POST.get(‘bh’)
name = request.POST.get(‘name’)
tel_ = request.POST.get(‘tel’)
sfzh_ = request.POST.get(‘sfzh’)
hb_yp = models.Hb.objects.filter(bh=hb).values(‘yp’)[0][‘yp’]
hb_time = models.Hb.objects.filter(bh=hb).values(‘qfsj’)[0][‘qfsj’]
usr = request.session.get(‘username’)
hb_time = hb_time.replace(tzinfo=None)
time = datetime.now()
if hb_time-time < timedelta(hours=1):
message=“距离航班起飞时间在一小时之内,无法购买本次航班坐席!”
return render(request, ‘app01/search.html’, {‘message’: message})
if hb_yp > 0:
models.Ydjl.objects.create(xm=name,user=usr,hbbh=hb,tel=tel_,sfzh=sfzh_,dpsj=time)
models.Hb.objects.filter(bh=hb).update(yp=hb_yp - 1)
message = “恭喜您购票成功,祝您旅途愉快!”
return render(request,‘app01/search.html’,{‘message’:message})
return render(request,‘app01/search.html’)
个人中心:
def grzx(request):
if not request.session.get(‘is_login’, None):
return redirect(’/login/’)
usr = request.session.get(‘username’)
print (usr)
tickets = models.Ydjl.objects.filter(user=usr)
print(type(tickets))
print(tickets)
if tickets:
print(usr)
if request.method == ‘POST’:
td = request.POST.get(‘bh’)
sfzh_ = request.POST.get(‘sfzh’)
time = models.Hb.objects.filter(bh=td).values(‘qfsj’)[0][‘qfsj’]
print (time)
sfzh = models.Ydjl.objects.filter(sfzh=sfzh_)
time = time.replace(tzinfo=None)
local_time = datetime.now()
if time - local_time < timedelta(hours=2):
message = “航班在两小时内起飞,无法办理退票业务!”
return render(request,‘app01/grzx.html’,{‘message’:message})
if not sfzh:
message = “没有找到身份证号%s的订票记录!”(sfzh_)
return render(request,‘app01/grzx.html’,{‘message’:message})
models.Ydjl.objects.filter(sfzh=sfzh_,hbbh=td).delete()
hb_yp = models.Hb.objects.filter(bh=td).values(‘yp’)[0][‘yp’]
models.Hb.objects.filter(bh=td).update(yp=hb_yp + 1)
message = “退票成功!”
return render(request,‘app01/grzx.html’,{‘message’:message})
return render(request,‘app01/grzx.html’,{‘hb’:tickets})
else:
message = “没有购票记录!”
return redirect(’/search/’,{‘message’:message})
from django.db import models
Create your models here.
class Ydjl(models.Model):
user = models.CharField(db_column=‘USER’, max_length=25, blank=True, null=True) # Field name made lowercase.
xm = models.CharField(db_column=‘XM’, max_length=255, blank=True, null=True) # Field name made lowercase.
tel = models.CharField(db_column=‘TEL’, max_length=11, blank=True, null=True) # Field name made lowercase.
hbbh = models.CharField(db_column=‘HBBH’, max_length=4, blank=True, null=True) # Field name made lowercase.
dpsj = models.DateTimeField(db_column=‘DPSJ’, blank=True, null=True) # Field name made lowercase.
sfzh = models.CharField(db_column=‘SFZH’, max_length=255, blank=True, null=True) # Field name made lowercase.
id = models.AutoField(db_column=‘ID’, primary_key=True) # Field name made lowercase.
class Meta:managed = Falsedb_table = 'YDJL'
class Hb(models.Model):
bh = models.CharField(db_column=‘BH’, primary_key=True, max_length=255) # Field name made lowercase.
qd = models.CharField(db_column=‘QD’, max_length=255, blank=True, null=True) # Field name made lowercase.
zd = models.CharField(db_column=‘ZD’, max_length=255, blank=True, null=True) # Field name made lowercase.
qfsj = models.DateTimeField(db_column=‘QFSJ’, blank=True, null=True) # Field name made lowercase.
hxbh = models.CharField(db_column=‘HXBH’, max_length=255, blank=True, null=True) # Field name made lowercase.
yp = models.IntegerField(db_column=‘YP’, blank=True, null=True) # Field name made lowercase.
zp = models.CharField(db_column=‘ZP’, max_length=255, blank=True, null=True) # Field name made lowercase.
ddsj = models.DateTimeField(db_column=‘DDSJ’, blank=True, null=True) # Field name made lowercase.
pj = models.CharField(db_column=‘PJ’, max_length=25, blank=True, null=True) # Field name made lowercase.
class Meta:managed = Falsedb_table = 'HB'
class Hx(models.Model):
hxbh = models.CharField(db_column=‘HXBH’, primary_key=True, max_length=4) # Field name made lowercase.
zd = models.CharField(db_column=‘ZD’, max_length=255, blank=True, null=True) # Field name made lowercase.
qd = models.CharField(db_column=‘QD’, max_length=255, blank=True, null=True) # Field name made lowercase.
fjxh = models.CharField(db_column=‘FJXH’, max_length=20, blank=True, null=True) # Field name made lowercase.
class Meta:managed = Falsedb_table = 'HX'
class User(models.Model):
user = models.CharField(db_column=‘USER’, primary_key=True, max_length=255) # Field name made lowercase.
passwd = models.CharField(db_column=‘PASSWD’, max_length=255, blank=True, null=True) # Field name made lowercase.
tel = models.CharField(db_column=‘TEL’, max_length=255, blank=True, null=True) # Field name made lowercase.
mail = models.CharField(db_column=‘MAIL’, max_length=255, blank=True, null=True) # Field name made lowercase.
lx = models.CharField(db_column=‘LX’, max_length=255, blank=True, null=True) # Field name made lowercase.
class Meta:managed = Falsedb_table = 'USER'
选择任意你熟悉的编程语言开发一个C/S、B/S、B/A/S或基于移动设备的民航售票系统,实现基本功能相关推荐
- 【华为笔试】安排面试官。有M个面试官,每个面试官熟悉的编程语言是一个列表,有N个面试者,按照面试者的机试选择的语言分配面试官进行面试(Python)
题目 有M个面试官,每个面试官熟悉的编程语言是一个列表,比如["Java", "C++", "Golang"]表示该面试官熟悉Java.C+ ...
- 如何做一个基于python旅游景点景区售票系统毕业设计毕设作品(Django框架)
分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):基于Python(Django框架)的网站开发属于B/S架构(即浏览器和服务器架构模式), ...
- java程序员可以只用windos吗_程序员要写多少代码 才能开发一个window操作系统
开发一个window操作系统需要程序员写多少行代码呢? 微软的Windows系统是伴随我们已久的老朋友了,大多数人都是一代一代Windows的用上来,老用户几乎都形成一个共识,就是微软的系统有一代会很 ...
- python开发一个自己的技术网站_手把手教你写网站:Python WEB开发技术实战
摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...
- 如何开发一个完整的Helm charts应用实例
文章目录 1. 简介 2. 条件 3. 应用 4. 基础模板 5. 命名模板 6. 版本兼容 7. 持久化 8. 定制 9. 共享 Charts 1. 简介 Helm 图表是在 Kubernetes ...
- Java Web之从零开始开发火车票售票系统( 一 )
本章将实现用户后台管理的添加(已完成).查询(已完成).修改(已完成).删除(已完成)功能.(由于前期处于测试阶段,未对数据进行限制,后期将进行完善) 系统开发平台 任务陈述 创建数据库(trainb ...
- 编程语言开发编程语言_D编程语言是开发的绝佳选择的5个理由
编程语言开发编程语言 D编程语言是一种静态类型的通用编程语言,具有类似于C的语法,可编译为本机代码. 由于许多原因,它非常适合开源软件开发: 这里是其中的一些. 建模能力 在某种情况下发现自己并想完全 ...
- 级联选择组件_如何开发一个 Antd 级联多选控件
本文也同步发在掘金上, https:// juejin.cn/post/69149942 41940750343 Intro 这篇文章将从零开始介绍如何开发一个 Antd 的级联多选选择器.先看效果: ...
- python循环10次_开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择...
开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择 "+.-.*"运算符,构成一个表达式, 让用户计算式子结果并输入结果,如果计算 ...
- k8s部署-48-k8s中如何选择使用哪个api,开发一个k8s的容器管理平台的思路是什么?
k8s中有很多的api,我们的yaml文件开头一定要申明一个apiversion,怎么知道该使用哪个api呢?如何来选择正确的api呢? 我们又该如何来开发一个基于k8s的容器管理平台,开发k8s容器 ...
最新文章
- 【通用CSS模板】移动端H5页面统一样式.css
- 企业数字化转型本质上是“人”的转型和“组织”的转型
- 五分钟教会你函数式编程与闭包
- select返回记录的顺序
- 如何通过三视图判断立方体个数_如何通过接触角判断疏水性?疏水性与亲水性的区别...
- Gym 101775J Straight Master(差分数组)题解
- CentOS7 设置主机名及IP映射
- java flash截图_求大神们帮助, 如何在java中实现文字数据转换成图片或flash显示
- 大型项目使用Automake/Autoconf完成编译配置
- 【转】webkit webApp 开发技术要点总结
- Hustoj_liveCD问题总结
- 十年前加入互联网改变世界,十年后加入顶级微信团队一起炸屎
- w ndows7安装软件免费下载,window7系统下载_window7旗舰版下载「win7」-太平洋下载中心...
- 从幼苗长成大树 中美两国GIS软件技术已并驾齐驱
- 大名鼎鼎的 Linux —— 进程,线程,协程
- 音视频封装到MP4/MP3ffmpeg(十四)
- SQL SERVER 2008 R2的累计补丁下载地址
- 3D空间堆叠PCB设计 ——PCB线路优化项目总结
- 10 款 Linux 环境下的开源替代工具
- 云linux服务器备份6,云服务器 ECS Linux 系统 MySQL 备份的导入导出
热门文章
- python龙旋风图形代码_python-如何在数据库中使龙卷风请求成为原...
- 【lua语言从青铜到王者】第二篇:开发环境搭建+3种编辑器使用示例
- python爬取网页的内层页_python爬取网页 下一页
- 视觉目标跟踪漫谈:从原理到应用
- docker部署eureka时无法启动容器(问题解决)
- 摄影文件服务器,服务器和摄影摄像设备招标文件.pdf
- 【转载】WAMP5:PHP环境整合安装(图解)及密码设置图解
- 大小写字母c语言,C语言 大小写字母转换
- 读《TOWARDS EXPRESSIVE SPEAKING STYLE MODELLING WITH HIERARCHICAL CONTEXT INFORMATION FOR MANDARIN》
- TypeError: parentComponent.ctx.deactivate is not a function