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 | 是否展示(自动添加) |
-- 结果示例:
- 
-
+
+
+
查询所有
@@ -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 | 是否展示 |
-
-- 结果示例:
-
+ | 参数名 | 参数值 | 参数类型 | 描述说明 |
+ | ------------- | ------------------------------------------------- | -------- | ------------------------ |
+ | 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 | 是否展示 |
-
-- 结果示例:
-
+ | 参数名 | 参数值 | 参数类型 | 描述说明 |
+ | ------------- | ------------------------------------------------- | -------- | ------------------------ |
+ | 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 | 是否展示 |
-
-- 结果示例:
-
+ | 参数名 | 参数值 | 参数类型 | 描述说明 |
+ | ------------- | ------------------------------------------------- | -------- | ---------------------- |
+ | 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 | 是否展示 |
-
-- 结果示例:
-
\ 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