当前位置: 首页 > news >正文

本地做网站河北新闻最新消息10条

本地做网站,河北新闻最新消息10条,小程序变成网页链接,长沙有什么好玩的室内今天给大家分享一个我最近做的一个学校宿舍管理系统,python版,这个系统实现的功能有:首页 | 学校管理 | 宿舍楼管理 | 宿舍管理 | 学生管理 | 学生调宿 | 学生退宿 | 报修等级 | 宿舍卫生评分 | 违纪记录 | 管理员管理 。一共有11个菜单。 使…

今天给大家分享一个我最近做的一个学校宿舍管理系统,python版,这个系统实现的功能有:首页 | 学校管理 | 宿舍楼管理 | 宿舍管理 | 学生管理 | 学生调宿 | 学生退宿 | 报修等级 | 宿舍卫生评分 | 违纪记录 | 管理员管理 。一共有11个菜单。
使用的技术:
编程语言:python
后端框架: fastApi
前端:vue2。
为了加强自己对python编程的理解,最近写了大量的python相关的项目。今天就先来分享这个宿舍管理系统。
先给大家看一下页面效果:
首页:
在这里插入图片描述
学生调宿:
在这里插入图片描述
卫生评分:
在这里插入图片描述
学生退宿:
在这里插入图片描述
在这里插入图片描述
代码量还是有的,如果你是刚刚开始学习编程,需要相关的练习项目,希望这个项目能帮助到你,可以仿照着这个项目,自己尝试着手敲一下。项目源码我打包好了,有兴趣的可以去看看。~ (非开源)
https://wwwoop.com/home/Index/projectInfo?goodsId=119&typeParam=1&subKey=-1

部分代码:

from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session, joinedload
from sqlalchemy import and_, func
from typing import Optional
from datetime import datetime
import mathfrom core.deps import get_db, get_current_admin
from core.response import ResponseModel
from core.exceptions import CustomException
from models.repair_registration import RepairRegistration
from models.dormitory_building import DormitoryBuilding
from models.dormitory import Dormitory
from models.admin import Admin
from schemas.repair_registration import (RepairRegistrationCreate,RepairRegistrationUpdate,RepairRegistrationResponse,RepairRegistrationListResponse,BuildingOption,DormitoryOption
)router = APIRouter()@router.get("/list", response_model=dict)
def get_repair_registration_list(page: int = Query(1, ge=1, description="页码"),page_size: int = Query(10, ge=1, le=100, description="每页数量"),reporter_name: Optional[str] = Query(None, description="报修人姓名"),db: Session = Depends(get_db),current_admin: Admin = Depends(get_current_admin)
):"""获取报修登记列表"""try:# 构建查询query = db.query(RepairRegistration).options(joinedload(RepairRegistration.building),joinedload(RepairRegistration.dormitory)).filter(RepairRegistration.is_deleted == 0)# 添加搜索条件if reporter_name:query = query.filter(RepairRegistration.reporter_name.like(f"%{reporter_name}%"))# 按创建时间倒序排列query = query.order_by(RepairRegistration.created_time.desc())# 获取总数total = query.count()# 分页查询offset = (page - 1) * page_sizeitems = query.offset(offset).limit(page_size).all()# 构建响应数据repair_list = []for repair in items:# 时间格式化created_time = repair.created_time.strftime("%Y-%m-%d %H:%M:%S") if repair.created_time else Noneupdated_time = repair.updated_time.strftime("%Y-%m-%d %H:%M:%S") if repair.updated_time else Noneexpected_repair_time = repair.expected_repair_time.strftime("%Y-%m-%d %H:%M:%S") if repair.expected_repair_time else Nonerepair_list.append({"id": repair.id,"reporter_name": repair.reporter_name,"reporter_phone": repair.reporter_phone,"building_id": repair.building_id,"building_name": repair.building.building_name if repair.building else None,"dormitory_id": repair.dormitory_id,"dormitory_name": repair.dormitory.dormitory_name if repair.dormitory else None,"dormitory_number": repair.dormitory.dormitory_number if repair.dormitory else None,"repair_content": repair.repair_content,"remark": repair.remark,"expected_repair_time": expected_repair_time,"created_time": created_time,"updated_time": updated_time})# 计算总页数total_pages = math.ceil(total / page_size) if total > 0 else 1return ResponseModel.success(data={"items": repair_list,"total": total,"page": page,"page_size": page_size,"total_pages": total_pages})except Exception as e:raise CustomException(msg=f"获取报修登记列表失败: {str(e)}")@router.get("/detail/{repair_id}", response_model=dict)
def get_repair_registration_detail(repair_id: int,db: Session = Depends(get_db),current_admin: Admin = Depends(get_current_admin)
):"""获取报修登记详情"""try:# 查询报修登记信息repair = db.query(RepairRegistration).options(joinedload(RepairRegistration.building),joinedload(RepairRegistration.dormitory)).filter(RepairRegistration.id == repair_id,RepairRegistration.is_deleted == 0).first()if not repair:raise CustomException(msg="报修登记不存在")# 时间格式化created_time = repair.created_time.strftime("%Y-%m-%d %H:%M:%S") if repair.created_time else Noneupdated_time = repair.updated_time.strftime("%Y-%m-%d %H:%M:%S") if repair.updated_time else Noneexpected_repair_time = repair.expected_repair_time.strftime("%Y-%m-%d %H:%M:%S") if repair.expected_repair_time else Nonereturn ResponseModel.success(data={"id": repair.id,"reporter_name": repair.reporter_name,"reporter_phone": repair.reporter_phone,"building_id": repair.building_id,"building_name": repair.building.building_name if repair.building else None,"dormitory_id": repair.dormitory_id,"dormitory_name": repair.dormitory.dormitory_name if repair.dormitory else None,"dormitory_number": repair.dormitory.dormitory_number if repair.dormitory else None,"repair_content": repair.repair_content,"remark": repair.remark,"expected_repair_time": expected_repair_time,"created_time": created_time,"updated_time": updated_time})except CustomException:raiseexcept Exception as e:raise CustomException(msg=f"获取报修登记详情失败: {str(e)}")@router.post("/create", response_model=dict)
def create_repair_registration(repair_data: RepairRegistrationCreate,db: Session = Depends(get_db),current_admin: Admin = Depends(get_current_admin)
):"""创建报修登记"""try:# 验证宿舍楼是否存在building = db.query(DormitoryBuilding).filter(DormitoryBuilding.id == repair_data.building_id,DormitoryBuilding.is_deleted == 0).first()if not building:raise CustomException(msg="宿舍楼不存在")# 验证宿舍是否存在且属于指定宿舍楼dormitory = db.query(Dormitory).filter(Dormitory.id == repair_data.dormitory_id,Dormitory.building_id == repair_data.building_id,Dormitory.is_deleted == 0).first()if not dormitory:raise CustomException(msg="宿舍不存在或不属于指定宿舍楼")# 创建报修登记repair = RepairRegistration(reporter_name=repair_data.reporter_name,reporter_phone=repair_data.reporter_phone,building_id=repair_data.building_id,dormitory_id=repair_data.dormitory_id,repair_content=repair_data.repair_content,remark=repair_data.remark,expected_repair_time=repair_data.expected_repair_time,created_id=current_admin.id,updated_id=current_admin.id)db.add(repair)db.commit()db.refresh(repair)return ResponseModel.success(msg="报修登记创建成功")except CustomException:raiseexcept Exception as e:db.rollback()raise CustomException(msg=f"创建报修登记失败: {str(e)}")@router.get("/building-options", response_model=dict)
def get_building_options(db: Session = Depends(get_db),current_admin: Admin = Depends(get_current_admin)
):"""获取宿舍楼选项"""try:buildings = db.query(DormitoryBuilding).filter(DormitoryBuilding.is_deleted == 0).order_by(DormitoryBuilding.building_name).all()options = [{"value": building.id,"label": building.building_name}for building in buildings]return ResponseModel.success(data=options)except Exception as e:raise CustomException(msg=f"获取宿舍楼选项失败: {str(e)}")@router.get("/dormitory-options", response_model=dict)
def get_dormitory_options(building_id: Optional[int] = Query(None, description="宿舍楼ID"),db: Session = Depends(get_db),current_admin: Admin = Depends(get_current_admin)
):"""获取宿舍选项"""try:query = db.query(Dormitory).filter(Dormitory.is_deleted == 0)if building_id:query = query.filter(Dormitory.building_id == building_id)dormitories = query.order_by(Dormitory.dormitory_number).all()options = [{"value": dormitory.id,"label": f"{dormitory.dormitory_number} - {dormitory.dormitory_name}","building_id": dormitory.building_id}for dormitory in dormitories]return ResponseModel.success(data=options)except Exception as e:raise CustomException(msg=f"获取宿舍选项失败: {str(e)}")
http://www.dtcms.com/a/437442.html

相关文章:

  • 建筑人才网官方网站查询手工制作包包
  • 个人备案网站服务内容百度seo是什么意思呢
  • 响应式网站设计的规范网站建设管理ppt模板
  • 微站网站建设技术概述
  • 建设一个行业性的网站价格长春高铁站
  • 公司网站设计的费用广州网站建设 领航科技
  • 完成网站的建设工作总结aspnet东莞网站建设价格
  • 连云港网站建设推广苏州自助建站平台
  • 建设人力资源网站目标推广软件的app
  • 长沙商城网站做网站最重要的是什么
  • 网站空间 云端怎样用flash做游戏下载网站
  • 做网站要有策划么产品销售推广方案
  • 做网站的作品思路及步骤中国商城网站建设
  • 做网站坂田做淘客网站用备案
  • 360免费建站李梦杭州网站建设app
  • 广东智能网站建设费用吉林整站优化
  • 公司建设网站的申请一流的网站建设与优化
  • 网站301多久门户建设
  • 建立类似淘宝的网站跨境电商一件代发货源平台
  • 百度网站建设教程备案域名购买交易
  • 廊坊网站建设佛山厂商郑州防疫新闻
  • 头条搜索站长平台做网站linux主机
  • 主机如何做服务器建网站图片制作pdf文件
  • 山西建网站天津哪家公司做企业网站
  • 有哪些可以做翻译的网站成都网站推广找四川冠辰
  • 比较好的设计网站推荐网站推广策划方案毕业设计
  • 做体育的网站网站分析论文
  • 手机企业网站开发网页游戏网址有哪些
  • 上海网站公网上商城网站开发公司
  • 芜湖建设路小学网站做关于灯饰的网站