diff --git a/TP_PROJECT/TP/settings.py b/TP_PROJECT/TP/settings.py index 0cd1162..4d10e52 100644 --- a/TP_PROJECT/TP/settings.py +++ b/TP_PROJECT/TP/settings.py @@ -157,4 +157,5 @@ DATETIME_FORMAT = 'Y-m-d H:M:S' REST_FRAMEWORK = { 'DATETIME_FORMAT': "%Y-%m-%d %H:%M:%S", 'DATE_FORMAT': "%Y-%m-%d", + 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'], } \ No newline at end of file diff --git a/TP_PROJECT/TP后台接口文档.md b/TP_PROJECT/TP后台接口文档.md index e92835f..86108be 100644 --- a/TP_PROJECT/TP后台接口文档.md +++ b/TP_PROJECT/TP后台接口文档.md @@ -29,28 +29,28 @@ - 返回值: - | 参数名 | 参数值 | 参数类型 | 描述说明 | - | ------------- | ------------------------------------------------- | -------- | ------------ | - | uid | 1 | int | 自增 | - | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | - | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | - | police_id | 00000001 | string | 警号 | - | event_type | 1 | string | 事件类型 | - | is_violation | true | bool | 是否违规 | - | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | - | relative_time | 4.0 | float | 相对时间 | - | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | - | car_number | 苏a045689 | string | 车牌号 | - | ai_analysis | 违规 | string | 分析结果 | - | add_time | 2023-05-31 18:42:15 | string | 记录添加时间 | - | update_time | 2023-05-31 18:42:15 | string | 记录更新时间 | - | is_display | true | bool | 是否展示 | + | 参数名 | 参数值 | 参数类型 | 描述说明 | + | ------------- | ------------------------------------------------- | -------- | ------------------------ | + | uid | 1 | int | 自增 | + | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | + | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | + | police_id | 00000001 | string | 警号 | + | event_type | 1 | string | 事件类型 | + | is_violation | true | bool | 是否违规 | + | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | + | relative_time | 4.0 | float | 相对时间 | + | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | + | car_number | 苏a045689 | string | 车牌号 | + | ai_analysis | 违规 | string | 分析结果 | + | add_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | + | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | + | is_display | true | bool | 是否展示(自动添加) | -- 结果示例: - ![](.images/查询单个.png) - + + +
查询所有 @@ -67,25 +67,26 @@ - 返回值 - | 参数名 | 参数值 | 参数类型 | 描述说明 | - | ------------- | ------------------------------------------------- | -------- | ------------ | - | uid | 1 | int | 自增 | - | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | - | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | - | police_id | 00000001 | string | 警号 | - | event_type | 1 | string | 事件类型 | - | is_violation | true | bool | 是否违规 | - | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | - | relative_time | 4.0 | float | 相对时间 | - | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | - | car_number | 苏a045689 | string | 车牌号 | - | ai_analysis | 违规 | string | 分析结果 | - | add_time | 2023-05-31 18:42:15 | string | 记录添加时间 | - | update_time | 2023-05-31 18:42:15 | string | 记录更新时间 | - | is_display | true | bool | 是否展示 | - -- 结果示例:![](.images/查询所有.png) -
+ | 参数名 | 参数值 | 参数类型 | 描述说明 | + | ------------- | ------------------------------------------------- | -------- | ------------------------ | + | uid | 1 | int | 自增 | + | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | + | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | + | police_id | 00000001 | string | 警号 | + | event_type | 1 | string | 事件类型 | + | is_violation | true | bool | 是否违规 | + | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | + | relative_time | 4.0 | float | 相对时间 | + | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | + | car_number | 苏a045689 | string | 车牌号 | + | ai_analysis | 违规 | string | 分析结果 | + | add_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | + | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | + | is_display | true | bool | 是否展示(自动添加) | + + + +
新增数据 @@ -106,16 +107,13 @@ "relative_time": 4, "video_dir": "/d/test", "car_number": "苏a045689", - "ai_analysis": "违规", - "add_time": "2023-05-26T13:09:03", - "update_time": "2023-05-26T13:09:01", - "is_display": true + "ai_analysis": "违规" } ``` - + | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | | ------------- | ------------------- | -------- | -------- | ---------- | - | video_hash | vbhdrbvcw | 是 | string | 视频哈希 | +| video_hash | vbhdrbvcw | 是 | string | 视频哈希 | | record_time | 2023-05-26T13:09:05 | 是 | datetime | 记录仪时间 | | police_id | 00000002 | 是 | string | 警号 | | event_type | 1 | 是 | int | 事件类型 | @@ -125,31 +123,29 @@ | video_dir | /d/test | 是 | string | 视频路径 | | car_number | 苏a045689 | 是 | string | 车牌号 | | ai_analysis | 违规 | 是 | string | 分析结果 | - | add_time | 2023-05-26T13:09:03 | 是 | datetime | 添加时间 | - | update_time | 2023-05-26T13:09:03 | 是 | datetime | 更新时间 | - | is_display | true | 是 | bool | 是否展示 | - + - 返回值 - | 参数名 | 参数值 | 参数类型 | 描述说明 | - | ------------- | ------------------------------------------------- | -------- | ------------ | - | uid | 1 | int | 自增 | - | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | - | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | - | police_id | 00000001 | string | 警号 | - | event_type | 1 | string | 事件类型 | - | is_violation | true | bool | 是否违规 | - | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | - | relative_time | 4.0 | float | 相对时间 | - | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | - | car_number | 苏a045689 | string | 车牌号 | - | ai_analysis | 违规 | string | 分析结果 | - | add_time | 2023-05-31 18:42:15 | string | 记录添加时间 | - | update_time | 2023-05-31 18:42:15 | string | 记录更新时间 | - | is_display | true | bool | 是否展示 | - -- 结果示例:![](.images/新增数据.png) -
+ | 参数名 | 参数值 | 参数类型 | 描述说明 | + | ------------- | ------------------------------------------------- | -------- | ------------------------ | + | uid | 1 | int | 自增 | + | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | + | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | + | police_id | 00000001 | string | 警号 | + | event_type | 1 | string | 事件类型 | + | is_violation | true | bool | 是否违规 | + | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | + | relative_time | 4.0 | float | 相对时间 | + | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | + | car_number | 苏a045689 | string | 车牌号 | + | ai_analysis | 违规 | string | 分析结果 | + | add_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | + | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | + | is_display | true | bool | 是否展示(自动添加) | + + + +
修改数据 @@ -170,16 +166,13 @@ "relative_time": 4, "video_dir": "/d/test", "car_number": "苏a045689", - "ai_analysis": "违规", - "add_time": "2023-05-26T13:09:03", - "update_time": "2023-05-26T13:09:01", - "is_display": true + "ai_analysis": "违规" } ``` - + | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | | ------------- | ------------------- | -------- | -------- | ---------- | - | video_hash | vbhdrbvcw | 是 | string | 视频哈希 | +| video_hash | vbhdrbvcw | 是 | string | 视频哈希 | | record_time | 2023-05-26T13:09:05 | 是 | datetime | 记录仪时间 | | police_id | 00000002 | 是 | string | 警号 | | event_type | 1 | 是 | int | 事件类型 | @@ -189,33 +182,31 @@ | video_dir | /d/test | 是 | string | 视频路径 | | car_number | 苏a045689 | 是 | string | 车牌号 | | ai_analysis | 违规 | 是 | string | 分析结果 | - | add_time | 2023-05-26T13:09:03 | 是 | datetime | 添加时间 | - | update_time | 2023-05-26T13:09:03 | 是 | datetime | 更新时间 | - | is_display | true | 是 | bool | 是否展示 | - + - 备注:操作会修改uid为20的数据 - 返回值: - | 参数名 | 参数值 | 参数类型 | 描述说明 | - | ------------- | ------------------------------------------------- | -------- | ------------ | - | uid | 1 | int | 自增 | - | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | - | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | - | police_id | 00000001 | string | 警号 | - | event_type | 1 | string | 事件类型 | - | is_violation | true | bool | 是否违规 | - | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | - | relative_time | 4.0 | float | 相对时间 | - | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | - | car_number | 苏a045689 | string | 车牌号 | - | ai_analysis | 违规 | string | 分析结果 | - | add_time | 2023-05-31 18:42:15 | string | 记录添加时间 | - | update_time | 2023-05-31 18:42:15 | string | 记录更新时间 | - | is_display | true | bool | 是否展示 | - -- 结果示例:![](.images/修改数据.png) -
+ | 参数名 | 参数值 | 参数类型 | 描述说明 | + | ------------- | ------------------------------------------------- | -------- | ---------------------- | + | uid | 1 | int | 自增 | + | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | + | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | + | police_id | 00000001 | string | 警号 | + | event_type | 1 | string | 事件类型 | + | is_violation | true | bool | 是否违规 | + | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | + | relative_time | 4.0 | float | 相对时间 | + | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | + | car_number | 苏a045689 | string | 车牌号 | + | ai_analysis | 违规 | string | 分析结果 | + | add_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | + | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | + | is_display | true | bool | 是否展示(自动添加) | + + + +
删除数据 @@ -228,22 +219,22 @@ - 返回值: - | 参数名 | 参数值 | 参数类型 | 描述说明 | - | ------------- | ------------------------------------------------- | -------- | ------------ | - | uid | 1 | int | 自增 | - | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | - | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | - | police_id | 00000001 | string | 警号 | - | event_type | 1 | string | 事件类型 | - | is_violation | true | bool | 是否违规 | - | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | - | relative_time | 4.0 | float | 相对时间 | - | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | - | car_number | 苏a045689 | string | 车牌号 | - | ai_analysis | 违规 | string | 分析结果 | - | add_time | 2023-05-31 18:42:15 | string | 记录添加时间 | - | update_time | 2023-05-31 18:42:15 | string | 记录更新时间 | - | is_display | true | bool | 是否展示 | - -- 结果示例:![](.images/删除数据.png) -
\ No newline at end of file + | 参数名 | 参数值 | 参数类型 | 描述说明 | + | ------------- | ------------------------------------------------- | -------- | ------------------------ | + | uid | 1 | int | 自增 | + | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | + | record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | + | police_id | 00000001 | string | 警号 | + | event_type | 1 | string | 事件类型 | + | is_violation | true | bool | 是否违规 | + | small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | + | relative_time | 4.0 | float | 相对时间 | + | video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | + | car_number | 苏a045689 | string | 车牌号 | + | ai_analysis | 违规 | string | 分析结果 | + | add_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | + | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | + | is_display | true | bool | 是否展示(自动添加) | + + + diff --git a/TP_PROJECT/app/serializers.py b/TP_PROJECT/app/serializers.py index 8132f92..e355336 100644 --- a/TP_PROJECT/app/serializers.py +++ b/TP_PROJECT/app/serializers.py @@ -1,4 +1,6 @@ from rest_framework import serializers +from django_filters.rest_framework import FilterSet +import django_filters from app.models import TP @@ -6,3 +8,24 @@ class SerialMyModel(serializers.ModelSerializer): class Meta: model = TP fields = "__all__" + + +class SerialFilter(FilterSet): + """ + 过滤器,支持模糊查询 + record_time,日期时间格式,如 2023-01-01 00:00:00 + police_id,支持模糊匹配 + event_type,支持模糊匹配 + """ + record_time = django_filters.DateTimeFilter(field_name='record_time', lookup_expr='icontains') + police_id = django_filters.CharFilter(field_name='police_id', lookup_expr='icontains') + event_type = django_filters.CharFilter(field_name='event_type', lookup_expr='icontains') + class Meta: + # 指定模型 + models = TP + # 指定需要模糊查询的字段 + fields = ("record_time", "police_id", "event_type",) + + + + diff --git a/TP_PROJECT/app/views.py b/TP_PROJECT/app/views.py index 70ac43f..f59f177 100644 --- a/TP_PROJECT/app/views.py +++ b/TP_PROJECT/app/views.py @@ -3,9 +3,8 @@ from django.shortcuts import render # Create your views here. from rest_framework import viewsets from rest_framework.response import Response -from django_filters.rest_framework import DjangoFilterBackend from app.models import TP -from app.serializers import SerialMyModel +from app.serializers import SerialMyModel, SerialFilter from app.pagination import MyPageNumberPagination @@ -18,5 +17,5 @@ class ModelQuery(viewsets.ModelViewSet): pagination_class = MyPageNumberPagination # 条件筛选 - filter_backends = [DjangoFilterBackend] - filterset_fields = ("record_time", "police_id", "event_type",) + filterset_class = SerialFilter + diff --git a/TP_PROJECT/db.sqlite3 b/TP_PROJECT/db.sqlite3 index 6622a0e..dd5cf42 100644 Binary files a/TP_PROJECT/db.sqlite3 and b/TP_PROJECT/db.sqlite3 differ