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或基于移动设备的民航售票系统,实现基本功能相关推荐

  1. 【华为笔试】安排面试官。有M个面试官,每个面试官熟悉的编程语言是一个列表,有N个面试者,按照面试者的机试选择的语言分配面试官进行面试(Python)

    题目 有M个面试官,每个面试官熟悉的编程语言是一个列表,比如["Java", "C++", "Golang"]表示该面试官熟悉Java.C+ ...

  2. 如何做一个基于python旅游景点景区售票系统毕业设计毕设作品(Django框架)

    分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):基于Python(Django框架)的网站开发属于B/S架构(即浏览器和服务器架构模式), ...

  3. java程序员可以只用windos吗_程序员要写多少代码 才能开发一个window操作系统

    开发一个window操作系统需要程序员写多少行代码呢? 微软的Windows系统是伴随我们已久的老朋友了,大多数人都是一代一代Windows的用上来,老用户几乎都形成一个共识,就是微软的系统有一代会很 ...

  4. python开发一个自己的技术网站_手把手教你写网站:Python WEB开发技术实战

    摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...

  5. 如何开发一个完整的Helm charts应用实例

    文章目录 1. 简介 2. 条件 3. 应用 4. 基础模板 5. 命名模板 6. 版本兼容 7. 持久化 8. 定制 9. 共享 Charts 1. 简介 Helm 图表是在 Kubernetes ...

  6. Java Web之从零开始开发火车票售票系统( 一 )

    本章将实现用户后台管理的添加(已完成).查询(已完成).修改(已完成).删除(已完成)功能.(由于前期处于测试阶段,未对数据进行限制,后期将进行完善) 系统开发平台 任务陈述 创建数据库(trainb ...

  7. 编程语言开发编程语言_D编程语言是开发的绝佳选择的5个理由

    编程语言开发编程语言 D编程语言是一种静态类型的通用编程语言,具有类似于C的语法,可编译为本机代码. 由于许多原因,它非常适合开源软件开发: 这里是其中的一些. 建模能力 在某种情况下发现自己并想完全 ...

  8. 级联选择组件_如何开发一个 Antd 级联多选控件

    本文也同步发在掘金上, https:// juejin.cn/post/69149942 41940750343 Intro 这篇文章将从零开始介绍如何开发一个 Antd 的级联多选选择器.先看效果: ...

  9. python循环10次_开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择...

    开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择 "+.-.*"运算符,构成一个表达式, 让用户计算式子结果并输入结果,如果计算 ...

  10. k8s部署-48-k8s中如何选择使用哪个api,开发一个k8s的容器管理平台的思路是什么?

    k8s中有很多的api,我们的yaml文件开头一定要申明一个apiversion,怎么知道该使用哪个api呢?如何来选择正确的api呢? 我们又该如何来开发一个基于k8s的容器管理平台,开发k8s容器 ...

最新文章

  1. 【通用CSS模板】移动端H5页面统一样式.css
  2. 企业数字化转型本质上是“人”的转型和“组织”的转型
  3. 五分钟教会你函数式编程与闭包
  4. select返回记录的顺序
  5. 如何通过三视图判断立方体个数_如何通过接触角判断疏水性?疏水性与亲水性的区别...
  6. Gym 101775J Straight Master(差分数组)题解
  7. CentOS7 设置主机名及IP映射
  8. java flash截图_求大神们帮助, 如何在java中实现文字数据转换成图片或flash显示
  9. 大型项目使用Automake/Autoconf完成编译配置
  10. 【转】webkit webApp 开发技术要点总结
  11. Hustoj_liveCD问题总结
  12. 十年前加入互联网改变世界,十年后加入顶级微信团队一起炸屎
  13. w ndows7安装软件免费下载,window7系统下载_window7旗舰版下载「win7」-太平洋下载中心...
  14. 从幼苗长成大树 中美两国GIS软件技术已并驾齐驱
  15. 大名鼎鼎的 Linux —— 进程,线程,协程
  16. 音视频封装到MP4/MP3ffmpeg(十四)
  17. SQL SERVER 2008 R2的累计补丁下载地址
  18. 3D空间堆叠PCB设计 ——PCB线路优化项目总结
  19. 10 款 Linux 环境下的开源替代工具
  20. 云linux服务器备份6,云服务器 ECS Linux 系统 MySQL 备份的导入导出

热门文章

  1. python龙旋风图形代码_python-如何在数据库中使龙卷风请求成为原...
  2. 【lua语言从青铜到王者】第二篇:开发环境搭建+3种编辑器使用示例
  3. python爬取网页的内层页_python爬取网页 下一页
  4. 视觉目标跟踪漫谈:从原理到应用
  5. docker部署eureka时无法启动容器(问题解决)
  6. 摄影文件服务器,服务器和摄影摄像设备招标文件.pdf
  7. 【转载】WAMP5:PHP环境整合安装(图解)及密码设置图解
  8. 大小写字母c语言,C语言 大小写字母转换
  9. 读《TOWARDS EXPRESSIVE SPEAKING STYLE MODELLING WITH HIERARCHICAL CONTEXT INFORMATION FOR MANDARIN》
  10. TypeError: parentComponent.ctx.deactivate is not a function