# 路面坑洼检测 **Repository Path**: scut_yjs/road-surface-pothole-detection ## Basic Information - **Project Name**: 路面坑洼检测 - **Description**: 路面坑洼检测原型系统原型设计 Django开发 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-22 - **Last Updated**: 2024-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 路面坑洼检测原型系统设计 ## 1. 项目简介 ### 涉及人员 1. 市民:报告坑洼,查询修复情况 2. 政府管理人员:根据市民报告,决定是否安排施工队对坑洼进行修复(工作单) 3. 施工队:报告修复的情况,使用给的材料、资金等 4. 总负责人:查看系统的所有信息;系统能够生成报告,主负责人能够随时查询检查 #### 界面 1. 界面 ### 项目结构 #### app 1. citizens:处理市民相关的功能,如报告坑洼和查询修复情况。 2. officials:处理政府管理人员相关的功能,如查看坑洼报告和创建工作单。 3. crews:处理施工队相关的功能,如查看工作单和报告修复情况。 4. admin:处理总负责人相关的功能,如查看系统的所有信息和生成报告。 ##### model 1. 工作单(WorkOrder): ```python class WorkOrder(models.Model): STATUS = ( ('O', 'Open'), ('I', 'In Progress'), ('C', 'Completed'), ) pothole = models.ForeignKey(Pothole, on_delete=models.CASCADE) assigned_to = models.ForeignKey(User, on_delete=models.CASCADE) status = models.CharField(max_length=1, choices=STATUS, default='O') ``` 2. 维修报告:完成时间、完成情况 ```python class RepairRecord(models.Model): work_order = models.ForeignKey(WorkOrder, on_delete=models.CASCADE) repaired_by = models.ForeignKey(User, on_delete=models.CASCADE) materials_used = models.TextField() cost = models.DecimalField(max_digits=9, decimal_places=2) repaired_at = models.DateTimeField(auto_now_add=True) ``` 3. 坑洼: ```Python class Pothole(models.Model): reported_by = models.ForeignKey(User, on_delete=models.CASCADE) location = models.CharField(max_length=200) size = models.IntegerField(max_length=200) reported_at = models.DateTimeField(auto_now_add=True) ``` #### views ##### citizens - PotholeReportView(报告坑洼) - PotholeStatusView(查询修复情况) ##### officials - PotholeListView(查看坑洼报告) - WorkOrderCreateView(创建工作单) ##### crews - WorkOrderListView(查看工作单) - RepairReportView(报告修复情况) ##### admin - SystemInfoView(查看系统的所有信息) - ReportGenerateView(生成报告) #### templates ##### citizens - pothole_report.html(报告坑洼) - pothole_status.html(查询修复情况) ##### officials - pothole_list.html(查看坑洼报告) - workorder_create.html(创建工作单) ##### crews - workorder_list.html(查看工作单) - repair_report.html(报告修复情况) ##### admin - system_info.html(查看系统的所有信息) - report_generate.html(生成报告) ## 2. 注意 1. 界面比较直观,需要有界面 2. 面向对象的,支持MVC模式,MVC的变种也可以比如Django的MTV 3. 不用交源代码,交了老师也运行不了 4. 期末考试题型:判断题 选择题 填空题 简答题 回答题 综合题 5. rails和ruby都在考试范围之内,但是不会考编程题目 ## 3. 文章介绍 ### 3.1 MVC和MVT ​ 很多文章说,MVT中的V就是MVC中的C控制器(controller),这种说法是错误的,在Django中MVT中的V仍然只是view,并不是控制器。 ​ MVT将MVC中控制器(controller)的功能进行了拆分,也就是说MVT在Model、View、Template三层之外,还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template。 原文链接:https://blog.csdn.net/mydistance/article/details/86490694