人脸识别门禁信息模块
人脸识别门禁信息模块(2023-04-21)

实验室完成了人脸识别门禁的功能,为了方便找到某个实验室的门在何时被谁打开,需要将门禁的开锁信息保存到数据库中,门禁信息由智能门锁返回,现在需要实现人脸识别门禁信息的储存。
| 序号 | 任务 | 完成情况 |
|---|---|---|
| 1 | model的设计 |
√ |
| 2 | 后端门禁信息处理的url设计 |
√ |
| 3 | 后端门禁信息处理的view设计 |
√ |
| 4 | 后端门禁信息处理的serializer设计 |
√ |
| 5 | 前端界面设计(一个talbe展示数据即可) |
√ |
想法:
1、model的设计
阅读门禁系统的代码现在暂时确定有如下字段:
名字(name),实验室(location),类型(type),时间(time),被访问人(visited)
2、后端门禁信息处理的url设计
后端有两个url设计,一个是接收门禁系统发来的门禁解锁信息,处理之后储存在数据库中,另一个是查询数据库中的门禁解锁日志,返回给前端然后展示给用户。
r'^v1/accesscontrolsystem/server/$'
r'^v1/accesscontrolsystem/$'
3、后端门禁信息处理的view设计
后端设计两个view用来对相应的两个url进行请求处理。
class AccessControlSystemCreateAPIView(generics.CreateAPIView):
class AccessControlSystemListAPIView(generics.ListAPIView):
4、后端门禁信息处理的serializer设计
因为门禁系统传入的数据需要经过处理之后才可以存入数据库,这边的model中的字段名称和处理前的字段是不一样的,所以在serializer中需要重写to_representation(self, instance)方法来对返回的数据进行处理。在validate(self, data)中验证数据完整性时对传入的数据进行处理,拿出必要的字段来储存到数据库中,这边写了单独的类集成了必要字段的方法:
class DoorManagerRecordParser:
def isGuest(cls,recordDict):
def isUser(cls,recordDict):
def name(cls,recordDict):
def visitedName(cls,recordDict):
def location(cls,recordDict):
def timestamp(cls,recordDict):
def time(cls, recordDict):
def uuid(cls, recordDict):
这边可以直接通过类方法,传入数据即可返回需要储存到数据库中的字段。
5、前端界面设计(一个talbe展示数据即可)
前端这边只需要展示解锁信息即可,不需要修改和删除操作,所以这边就写一个table就可以了,数据直接调用接口查询数据库中的信息,然后对必要字段进行展示即可。
浙公网安备 33010602011771号