1 Star 7 Fork 0

cy_z / 数据库-公交管理系统

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

公交安全管理系统

讲解的视频链接

1.需求分析(系统数据和功能)

1.1数据字典

1.1.1数据项

项名 含义说明 类型 长度 取值范围
公司名称 公交公司的名称 字符型 20
公司创建时间 公交公司创建的时间 日期型
办公地点 公交公司的办公地点 字符型 20
车牌号 公交车的车牌号 字符型 20
座数 公交车的座位数 整型
汽车车龄 公交车的车龄 整型
线路编号 线路的编号 字符型 5
线路创建时间 线路的创建时间 日期型
站点名 站点的名称 字符型 10
站点位置 站点的所处的位置 字符型 20
车队编号 车队的编号 整型
车队创建时间 车队的创建时间 日期型
工号 车队成员(包括队长和司机)的工号 字符型 11
身份证号 车队成员的身份证 字符型 20 18位
姓名 车队成员的姓名 字符型 10
性别 车队成员的性别 字符型 2 “男”或“女”
出生年份 车队成员的出生年份 整型
职称 车队成员的职称(用于区分普通司机,路队长和车队长) 字符型 10 (“普通司机”,“路队长”,“车队长”)
联系方式 车队成员的联系方式 字符型 20 11位
家庭住址 车队成员的家庭住址 字符型 30
入队时间 车队成员的入队时间 日期型
车龄 车队成员的车龄 整型
站点编号 站点在线路中的编号(表示站点处于线路中的第几个站) 整型
违章编号 违章类型的编号 整型
违章类型 违章类型的具体说明 字符型 20
处罚方式 对应违章类型的处罚方式 字符型 20
违章时间 司机的违章时间 日期型
记录人工号 违章item的录入人工号 字符型 11

1.1.2数据结构

数据结构 含义 组成成分
公交公司表 记录公交公司的信息 (公司名称,公司创建时间,办公地点)
汽车 记录公交车的信息 (车牌号,车品牌,座数,车龄,公司名称,线路编号)
车队 记录车队的信息 (车队编号,车队创建时间,公司名称)
线路 记录线路的信息 (线路编号,线路创建时间,车队编号)
站点 记录站点的信息 (站点名,站点位置)
车队成员 记录车队成员的信息 (工号,身份证号,姓名,性别,年龄,职称,联系方式,家庭住址,入队时间,车龄,车队编号,线路编号)
违章 记录违章类型的信息 (违章编号,违章类型,处罚方式)
线路-站点 记录线路和站点的对应信息 (站点名,线路编号,站点在线路中的编号)
车队成员-违章 用于录入司机违章的大致信息 (违章人工号,违章时间,车牌号,违章站点名,违章编号,记录人工号)
司机违章信息 记录司机违章的详细信息 (违章司机工号,违章司机车队,车牌号,线路编号,违章站点,违章时间,违章类型说明,记录人工号)
车队违章信息 记录车队的违章信息 (车队编号,违章时间,违章类型说明)
车队_车队成员 记录司机和车队的对应关系的信息 (工号,车队编号)
车队长 记录车队长和车队的对应关系信息 (工号,车队编号)
路队长 记录路队长和所负责线路的对应信息 (工号,负责线路编号)

1.2数据流图

img

图1 顶层数据流图

img

图2 公交安全管理系统数据流图

2.概念结构设计(E-R图设计)

ER图需要与数据库语义一致,可用ERwin。

img

图3 ER图-逻辑模型

img

图4 ER图-物理模型1

img

图5 ER图-物理模型2

img

图6 ER图-使用课本上的方法绘制的

3.逻辑结构设计(E-R图转换为关系模型)

3.1关系模式

关系模型给出表名,列名,列类型,主码,外码,其他约束,进行范式分析。

注:其中加粗的是候选码,框起来的为外码。

1.公交公司表(公司名称,公司创建时间,办公地点

2.汽车(车牌号,车品牌,座数,车龄,公司名称,线路编号

3.车队(车队编号,车队创建时间,公司名称

4.线路(线路编号,线路创建时间,车队编号

5.站点(站点名,站点位置)

6.车队成员(工号身份证号,姓名,性别,年龄,职称,联系方式,家庭住址,入队时间,车龄,车队编号,线路编号

假设不同成员的联系方式可以一致

7.违章(违章编号违章类型,处罚方式)

8.线路-站点(站点名,线路编号,站点在线路中的编号)

9.车队成员-违章(违章人工号,违章时间车牌号,违章站点名,违章编号,记录人工号

候选码:(违章人工号,违章时间),(违章时间,车牌号)

以上关系模式均满足4NF。

3.2视图

1.司机违章信息(违章司机工号,违章司机车队,车牌号,线路编号,违章站点,违章时间,违章类型说明,记录人工号)

2.车队违章信息(车队编号,违章时间,违章类型说明)

3.车队_车队成员(工号,车队编号)

4.车队长(工号,车队编号)

5.路队长(工号,负责线路编号)

4.程序开发环境及应用环境

4.1操作系统

Windows

4.2编程语言

Sql+python

4.3开发工具

Pycharm+mysql

5.应用程序设计中遇到的问题及解决方法

5.1数据库设计中的问题

①删除外码错误

-解决方法:参考

由于前期已经完成了后端的开发,在写前端代码时发现了设计的表有问题,出现了冗余的表,但是冗余的表里面有外码,在mysql中无法直接删除,需要先删除constraint 才能删除,具体可参见上述链接。

5.2程序设计中的问题

①如何将数据库中已经创建的表便捷的导入到python中以便前端的开发

-解决方法:参考

②如何将数据库中的视图导入python中

-解决方法:参考

使用上述链接中的代码将view换成自己的视图的名字(目前只找到了这个方法,只能自行输入视图的名字进行导入)

③录入foreign key时报错

-解决方法:参考

④前端查询foreign key时显示为object

-解决方法:参考

⑤css和html不同步,出现404和304错误

-解决方法:删除缓存,重新创建一个css文件并重新进行链接(由于没有找到更优的解决方案且遇到此问题的概率较低,故目前采用的是此方法,但本人认为可以有更优的解决方案)。

6.总结

通过此次实验,从数据库的设计方面看,我初步掌握了ER图的使用,并且知道了可以通过ER图的正向工程和反向工程可以实现ER图和sql语句的转换;从前后端整体的角度看,明白了sql和python的链接;从前端的方面看,对django开发前端和操作数据库有了初步的认识,另外也在实践中明白了异常处理的重要性,在用户输入与后台的数据产生不一致时不是直接返回错误的界面而是提示用户出现了错误,并在开发中解决了很多的问题,感觉收获不小。

7.附录:建立数据库和应用程序的主要代码

只列出主要代码,需要有注释。

7.1数据库设计的代码

/*1.创建基本表*/
/*1.2创建线路_站点表*/
DROP TABLE 线路_站点 CASCADE;

CREATE TABLE 线路_站点 (
       zhandianming         VARCHAR(10) NOT NULL,
       zhandianbianhao      SMALLINT NULL,
       xianlubianhao        VARCHAR(5) NOT NULL
);


ALTER TABLE 线路_站点
       ADD  PRIMARY KEY (zhandianming, xianlubianhao) ;

/*1.3创建车队成员_违章表*/
DROP TABLE 车队成员_违章 CASCADE;

CREATE TABLE 车队成员_违章 (
       weizhangshijian      DATE NOT NULL,
       weizhangsijigonghao  CHAR(11) NOT NULL,
       chepaihao            VARCHAR(20) NULL,
       xianlubianhao        VARCHAR(5) NULL,
       zhandianming         VARCHAR(10) NULL,
       weizhangbianhao      SMALLINT NULL,
       jilurengonghao       CHAR(11) NULL
);

ALTER TABLE 车队成员_违章
       ADD  PRIMARY KEY (weizhangshijian, weizhangsijigonghao)  ;

/*1.4创建车队成员表*/
DROP TABLE 车队成员 CASCADE;

CREATE TABLE 车队成员 (
       gonghao              CHAR(11) NOT NULL,
       shenfenzhenghao      VARCHAR(20) NOT NULL UNIQUE,
       xingming             VARCHAR(10) NULL,
       xingbie              CHAR(2) NULL,
       chushengnianfen      SMALLINT NULL,
       zhicheng             VARCHAR(10) NULL,
       lianxifangshi        VARCHAR(20) NULL,
       jiatinzhuzhi         VARCHAR(30) NULL,
       ruduishijian         DATE NULL,
       cheling              SMALLINT NULL,
       xianlubianhao        VARCHAR(5) NULL
       cheduibianhao      SMALLINT NULL
);

ALTER TABLE 车队成员
       ADD   PRIMARY KEY (gonghao)  ;

/*1.5创建汽车表*/
DROP TABLE 汽车 CASCADE;

CREATE TABLE 汽车 (
       chepaihao            VARCHAR(20) NOT NULL,
       chepinpai            VARCHAR(10) NOT NULL,
       zuoshu               SMALLINT NULL,
       cheling              SMALLINT NULL,
       gongsimingcheng      VARCHAR(20) NULL,
       xianlubianhao        VARCHAR(5) NULL
);


ALTER TABLE 汽车
       ADD  PRIMARY KEY (chepaihao)  ;

/*1.6创建线路表*/
DROP TABLE 线路 CASCADE;

CREATE TABLE 线路 (
       xianlubianhao        VARCHAR(5) NOT NULL,
       xianluchuangjianshijian DATE NULL,
       cheduibianhao        SMALLINT NULL
);


ALTER TABLE 线路
       ADD   PRIMARY KEY (xianlubianhao)  ;

/*1.7创建车队表*/
DROP TABLE 车队 CASCADE;

CREATE TABLE 车队 (
       cheduibianhao        SMALLINT NOT NULL,
       cheduichuangjianshijian DATE NOT NULL,
       gongsimingcheng      VARCHAR(20) NULL
);


ALTER TABLE 车队
       ADD   PRIMARY KEY (cheduibianhao)  ;

/*1.8创建公交公司表*/
DROP TABLE 公交公司 CASCADE;

CREATE TABLE 公交公司 (
       gongsimingcheng      VARCHAR(20) NOT NULL,
       gongsichuangjianshijian DATE NULL,
       bangongdidian        VARCHAR(20) NULL
);


ALTER TABLE 公交公司
       ADD   PRIMARY KEY (gongsimingcheng)  ;

/*1.9创建站点表*/
DROP TABLE 站点 CASCADE;

CREATE TABLE 站点 (
       zhandianming         VARCHAR(10) NOT NULL,
       zhandianweizhi       VARCHAR(20) NULL
);


ALTER TABLE 站点
       ADD   PRIMARY KEY (zhandianming)  ;

/*1.10创建违章表*/
DROP TABLE 违章 CASCADE;

CREATE TABLE 违章 (
       weizhangbianhao      SMALLINT NOT NULL,
       weizhangleixing      VARCHAR(20) NULL,
       chufafangshi         VARCHAR(20) NOT NULL
);


ALTER TABLE 违章
       ADD   PRIMARY KEY (weizhangbianhao)  ;

/*2创建视图部分*/

/*2.1创建路队长视图*/

CREATE OR REPLACE VIEW 路队长 (工号, 负责路线)  AS
       SELECT 车队成员.gonghao, 车队成员.xianlubianhao
       FROM 车队成员
       WHERE 车队成员.zhicheng='路队长';


/*2.2创建车队队长视图*/
CREATE OR REPLACE VIEW 车队队长 (工号, 负责车队编号)  AS
       SELECT 车队成员.gonghao, 车队成员.cheduibianhao
       FROM 车队成员, 车队成员
       WHERE 车队成员.zhicheng='车队长' AND 车队成员.gonghao=车队成员.gonghao;

/*2.3创建车队_车队成员视图*/
CREATE OR REPLACE VIEW 车队_车队成员 (工号, 车队编号)  AS
select `cheduichengyuan`.`gonghao` AS `gonghao`,`cheduichengyuan`.`xianlubianhao` AS `xianlubianhao` from `cheduichengyuan`

/*2.4创建司机违章信息视图*/
CREATE OR REPLACE VIEW 司机违章信息 (违章司机工号, 违章司机车队, 车牌号, 线路编号, 违章站点, 违章时间, 违章类型说明, 记录人工号)  AS
       SELECT 车队成员_违章.weizhangsijigonghao, 车队成员.cheduibianhao, 车队成员_违章.chepaihao, 车队成员_违章.xianlubianhao, 车队成员_违章.zhandianming, 车队成员_违章.weizhangshijian, 违章.weizhangleixing, 车队成员_违章.jilurengonghao
       FROM 车队成员_违章, 车队成员, 违章
       WHERE 车队成员.gonghao=车队成员_违章.weizhangsijigonghao
AND 车队成员_违章.weizhangbianhao=违章.weizhangbianhao;

/*2.5创建车队违章信息视图*/
CREATE OR REPLACE VIEW 车队违章信息 (车队编号, 违章时间, 违章类型说明)  AS
       SELECT 车队成员.cheduibianhao, 车队成员_违章.weizhangshijian, 违章.weizhangleixing
       FROM 车队成员, 车队成员_违章, 违章
       WHERE 车队成员.gonghao=车队成员_违章.weizhangsijigonghao
AND 违章.weizhangbianhao=车队成员_违章.weizhangbianhao;

/*3设置外码*/

ALTER TABLE 线路_站点
       ADD   FOREIGN KEY (xianlubianhao)
                             REFERENCES 线路(xianlubianhao);


ALTER TABLE 线路_站点
       ADD  FOREIGN KEY (zhandianming)
                             REFERENCES 站点(zhandianming);


ALTER TABLE 车队成员_违章
       ADD  FOREIGN KEY (weizhangbianhao)
                             REFERENCES 违章(weizhangbianhao)
                             ON DELETE SET NULL  ;


ALTER TABLE 车队成员_违章
       ADD   FOREIGN KEY (zhandianming)
                             REFERENCES 站点(zhandianming)
                             ON DELETE SET NULL  ;


ALTER TABLE 车队成员_违章
       ADD   FOREIGN KEY (xianlubianhao)
                             REFERENCES 线路(xianlubianhao)
                             ON DELETE SET NULL  ;


ALTER TABLE 车队成员_违章
       ADD   FOREIGN KEY (chepaihao)
                             REFERENCES 汽车(chepaihao)
                             ON DELETE SET NULL  ;


ALTER TABLE 车队成员_违章
       ADD   FOREIGN KEY (weizhangsijigonghao)
                             REFERENCES 车队成员(gonghao)  ;


ALTER TABLE 车队成员
       ADD   FOREIGN KEY (xianlubianhao)
                             REFERENCES 线路(xianlubianhao)
                             ON DELETE SET NULL  ;


ALTER TABLE 汽车
       ADD   FOREIGN KEY (xianlubianhao)
                             REFERENCES 线路(xianlubianhao)
                             ON DELETE SET NULL ;


ALTER TABLE 汽车
       ADD   FOREIGN KEY (gongsimingcheng)
                             REFERENCES 公交公司(gongsimingcheng)
                             ON DELETE SET NULL  ;


ALTER TABLE 线路
       ADD   FOREIGN KEY (cheduibianhao)
                             REFERENCES 车队(cheduibianhao)
                             ON DELETE SET NULL  ;


ALTER TABLE 车队
       ADD   FOREIGN KEY (gongsimingcheng)
                             REFERENCES 公交公司(gongsimingcheng)
                             ON DELETE SET NULL  ;

INSERT INTO 公交公司 VALUE ('zhou',null,'online')
SELECT * FROM 公交公司

7.2前端开发部分

view.py

# 在这里面的函数与DBase里面的url对应
import sys

from django.shortcuts import render,HttpResponse,redirect
from app01 import models
import time

# Create your views here.
# 函数默认需要有一个参数

# 录入司机基本信息,如工号、姓名、性别等
def siji(request):
    if request.method == 'GET':
        return render(request,'lurusiji.html')
    print(request.POST)
    try:
    # 从前端获取数据
        gonghao = request.POST.get("gonghao")
        shenfenzhenghao = request.POST.get("shenfenzhenghao")
        print(len(shenfenzhenghao))
        if len(shenfenzhenghao)!=18 and len(shenfenzhenghao)!=0:
            return render(request, 'lurusiji.html',{"errsfzh":"身份证号输入错误"})
        xingming = request.POST.get("xingming")
        xingbie = request.POST.get("xingbie")
        chushengnianfen = request.POST.get("chushengnianfen")
        zhicheng = request.POST.get("zhicheng")
        lianxifangshi = request.POST.get("lianxifangshi")
        if len(lianxifangshi) != 11 and len(lianxifangshi) != 0:
            return render(request, 'lurusiji.html', {"errlxfs": "联系方式填写错误"})
        jiatinzhuzhi = request.POST.get("jiatinzhuzhi")
        ruduishijian = request.POST.get("ruduishijian")
        cheling = request.POST.get("cheling")
        xianlubianhao = request.POST.get("xianlubianhao")
        cheduibianhao = request.POST.get("cheduibianhao")
        print(xingbie,zhicheng)
        # 特殊处理外码
        xianlubianhaof=models.Xianlu.objects.get(xianlubianhao=xianlubianhao)

        # 将信息放入数据库
        models.Cheduichengyuan.objects.create(gonghao=gonghao,shenfenzhenghao=shenfenzhenghao,xingming=xingming,xingbie=xingbie,chushengnianfen=chushengnianfen,zhicheng= zhicheng,lianxifangshi=lianxifangshi,jiatinzhuzhi=jiatinzhuzhi,ruduishijian=ruduishijian,cheling=cheling,xianlubianhao=xianlubianhaof,cheduibianhao=cheduibianhao)
    except Exception as e:
        print(e)
        print("error")
        return render(request,'lurusiji.html',{"errormsg":"录入失败!请检查:工号和身份证号是否录入,以及是否唯一,车队编号是否存在,若以上均正确仍无法录入请联系管理员",})
    else:
       return render(request, 'lurusiji.html')

# 录入汽车基本信息,如车牌号、座数等
def qiche(request):
    if request.method == 'GET':
        return render(request,'luruqiche.html')
    print(request.POST)
    try:
        # 从前端获取数据
        chepaihao = request.POST.get("chepaihao")
        chepinpai = request.POST.get("chepinpai")
        zuoshu = request.POST.get("zuoshu")
        cheling = request.POST.get("cheling")
        gongsimingcheng = request.POST.get("gongsimingcheng")
        xianlubianhao = request.POST.get("xianlubianhao")

        # 外码
        gongsimingchengf = models.Gongjiaogongsi.objects.get(gongsimingcheng=gongsimingcheng)
        xianlubianhaof=models.Xianlu.objects.get(xianlubianhao=xianlubianhao)

        # 加入到数据库中
        models.Qiche.objects.create(chepaihao=chepaihao,chepinpai=chepinpai,zuoshu=zuoshu,cheling=cheling,gongsimingcheng=gongsimingchengf,xianlubianhao=xianlubianhaof)
    except Exception as e:
        print(e)
        return render(request, 'luruqiche.html',{"err","录入错误!请检查检查公司和线路是否存在以及填写是否正确"})
    else:
        return render(request, 'luruqiche.html')
    return HttpResponse('录入汽车基本信息,如车牌号、座数等')

# 录入司机的违章信息;
def lsijiweizhang(request):
    if request.method == 'GET':
        return render(request,'luruweizhang.html')
    print(request.POST)

    try:
        # 从前端获取数据
        weizhangshijian = request.POST.get("weizhangshijian")
        weizhangsijigonghao = request.POST.get("weizhangsijigonghao")
        chepaihao = request.POST.get("chepaihao")
        zhandianming = request.POST.get("zhandianming")
        weizhangbianhao = request.POST.get("weizhangbianhao")
        jilurengonghao = request.POST.get("jilurengonghao")

        # 外码
        weizhangsijigonghaof=models.Cheduichengyuan.objects.get(gonghao=weizhangsijigonghao)
        chepaihaof = models.Qiche.objects.get(chepaihao=chepaihao)
        zhandianmingf = models.Zhandian.objects.get(zhandianming=zhandianming)
        weizhangbianhaof = models.Weizhang.objects.get(weizhangbianhao=weizhangbianhao)

        # 将信息放到数据库中
        models.CheduichengyuanWeizhang.objects.create(weizhangshijian=weizhangshijian,weizhangsijigonghao=weizhangsijigonghaof,chepaihao=chepaihaof,zhandianming=zhandianmingf,weizhangbianhao=weizhangbianhaof,jilurengonghao= jilurengonghao)
    except Exception as e:
        print(e)
        return  render(request, 'luruweizhang.html',{"err":"请检查信息填写是否正确"})
    else:
        return render(request, 'luruweizhang.html')
    return HttpResponse('录入司机的违章信息')

# 查询某个车队下的司机基本信息;
def chedui(request):
    if request.method == 'GET':
        return render(request,'chaxunchedui.html')
    print(request.POST)
    try:
        # 从前端获取数据并筛选数据库中的数据
        cheduibianhao = request.POST.get("cheduibianhao")
        sijiset=models.Cheduichengyuan.objects.filter(cheduibianhao=cheduibianhao)

        # 将出生年份转换成年龄
        for siji in sijiset:
            if siji.chushengnianfen != None:
                siji.chushengnianfen=time.localtime(time.time())[0]-siji.chushengnianfen
    except Exception as e:
        print(e)
        return render(request,'chaxunchedui.html',{"err":"请检查信息填写是否正确"})
    else:
        return render(request,'chaxunchedui.html',{"sijisets":sijiset})

    return HttpResponse('查询某个车队下的司机基本信息')

# 查询某名司机在某个时间段的违章详细信息;
def ssijiweizhang(request):
    if request.method == 'GET':
        return render(request,'chaxunsijiweizhang.html')
    print(request.POST)
    try:
        # 获取前端输入数据并将获得的string转换成date
        gonghao = request.POST.get("gonghao")
        kaishishijian = request.POST.get("kaishishijian")
        jieshushijian = request.POST.get("jieshushijian")

        import datetime
        kaishishijian=(datetime.date(*map(int, kaishishijian.split('-'))))
        jieshushijian=(datetime.date(*map(int, jieshushijian.split('-'))))

        # 从数据库中筛选数据
        weizhangsets = models.Sijiweizhangxinxi.objects.filter(weizhangshijian__range=[kaishishijian, jieshushijian],weizhangsijigonghao=gonghao)
    except Exception as e:
        print(e)
        return render(request,'chaxunsijiweizhang.html',{"err":"请检查输入是否正确"})
    else:
        return render(request,'chaxunsijiweizhang.html',{"weizhangsets":weizhangsets})
    return HttpResponse('查询某名司机在某个时间段的违章详细信息')

# 查询某个车队在某个时间段的违章统计信息,
# 如:2次闯红灯、4次未礼让斑马线等。(次数使用count得出)
def cheduiweizhang(request):
    if request.method == 'GET':
        return render(request,'chaxunweizhang.html')
    print(request.POST)
    try:
        # 从前端获取数据,并将string转换成date
        chedui = request.POST.get("chedui")
        kaishishijian = request.POST.get("kaishishijian")
        jieshushijian = request.POST.get("jieshushijian")

        import datetime
        kaishishijian=(datetime.date(*map(int, kaishishijian.split('-'))))
        jieshushijian=(datetime.date(*map(int, jieshushijian.split('-'))))

        # 从数据库中筛选数据,并将数据转换成dic(统计数据),key为违章类型,value为对应违章类型的次数
        weizhangsets = models.Cheduiweizhangxinxi.objects.filter(cheduibianhao=chedui,weizhangshijian__range=[kaishishijian, jieshushijian])
        weizhangdic={}
        for weizhang in weizhangsets:
            if weizhang.weizhangleixing in weizhangdic:
                weizhangdic[weizhang.weizhangleixing]=weizhangdic[weizhang.weizhangleixing]+1
            else:
                weizhangdic[weizhang.weizhangleixing] =1
    except Exception as e:
        print(e)
        return render(request, 'chaxunweizhang.html',{"err":"请检查输入是否正确"})
    else:
        return render(request,'chaxunweizhang.html',{"chedui": chedui,"kaishishijian":kaishishijian,"jieshushijian":jieshushijian,"weizhangdic":weizhangdic})
    return HttpResponse('查询某个车队在某个时间段的违章统计信息')

username='username'
# 登录页面
def login(request):
    if request.method == 'GET':
        return render(request,'login.html')
        # 如果是post请求则获取用户提交的数据
    print(request.POST)

    # 获取前端数据
    username=request.POST.get("user")
    password=request.POST.get("pwd")

    # 验证是不是车队长或者路队长   cheduizhangset=models.Cheduiduizhang.objects.filter(gonghao=username)
    luduizhangset=models.Luduizhang.objects.filter(gonghao=username)
    if (len(cheduizhangset)!=0 or len(luduizhangset)!=0) and password == '1234':
        return render(request,'duizhang.html')

    # 验证是不是车队成员,并将出生年份转换成年龄    chengyuanset=models.Cheduichengyuan.objects.filter(gonghao=username)
    if len(chengyuanset)!=0:
        chengyuan={}
        for item in chengyuanset:
            chengyuan=item
            if chengyuan.chushengnianfen != None:
                chengyuan.chushengnianfen=time.localtime(time.time())[0]-chengyuan.chushengnianfen
            print(chengyuan.xianlubianhao)
        weizhang=models.Sijiweizhangxinxi.objects.filter(weizhangsijigonghao=username)
        weizhanglen=len(weizhang)
        return render(request,'chengyuan.html',{"chengyuan":chengyuan,"weizhangsets":weizhang,"weizhanglen":weizhanglen})
    return render(request,'login.html',{"error_msg":"工号输入错误"})

空文件

简介

公交管理系统 展开 收起
SQL
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
SQL
1
https://gitee.com/cyz6666/database_busSystem.git
git@gitee.com:cyz6666/database_busSystem.git
cyz6666
database_busSystem
数据库-公交管理系统
master

搜索帮助