diff --git a/.gitignore b/.gitignore
index 48019c7..ab115d3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,5 @@ pnpm-debug.log*
 *.njsproj
 *.sln
 *.sw?
+*.log
+db.sqlite3
\ No newline at end of file
diff --git a/TP_API/settings.py b/TP_API/settings.py
index b26eba1..0054cec 100644
--- a/TP_API/settings.py
+++ b/TP_API/settings.py
@@ -41,7 +41,7 @@ INSTALLED_APPS = [
     'rest_framework',
     'django_filters',
     'corsheaders',
-    'app'
+    'app',
 ]
 
 MIDDLEWARE = [
@@ -158,4 +158,52 @@ 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
+}
+
+# 配置日志
+LOG_DIR = os.path.join(BASE_DIR, 'logs/')
+LOGGING = {
+    'version': 1,  # 保留字
+    'disable_existing_loggers': False,  # 是否禁用已经存在的日志实例
+    'formatters': {  # 定义日志的格式
+        'standard': {
+            'format': '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]'
+                      '[%(levelname)s][%(message)s]'
+        },
+        'simple': {
+            'format': '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
+        },
+        'collect': {
+            'format': '%(message)s'
+        }
+    },
+    'filters': {  # 定义日志的过滤器
+        'require_debug_true': {
+            '()': 'django.utils.log.RequireDebugTrue',
+        },
+    },
+    'handlers': {  # 日志处理程序
+        'console': {
+            'level': 'DEBUG',
+            'filters': ['require_debug_true'],  # 只有在Django debug为True时才在屏幕打印日志
+            'class': 'logging.StreamHandler',
+            'formatter': 'simple',
+            # 'filename': os.path.join(BASE_LOG_DIR, "tpservice.log")
+        },
+        'file': {
+            'level': 'DEBUG',
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': os.path.join(LOG_DIR, 'debug.log'),   # 日志文件
+            'when': "D",
+            'interval': 1,
+            'formatter': 'standard'
+        },
+    },
+    'loggers': {  # 日志实例 记录器
+        'mylogger': {  # 默认的logger应用如下配置
+            'handlers': ['console', 'file'],
+            'level': 'DEBUG',
+            'propagate': True,  # 是否向上一级logger实例传递日志信息
+        },
+    },
+}
diff --git a/app/admin.py b/app/admin.py
index 8c38f3f..a932cee 100644
--- a/app/admin.py
+++ b/app/admin.py
@@ -1,3 +1,5 @@
 from django.contrib import admin
 
 # Register your models here.
+from app.models import TP
+admin.site.register(TP)
diff --git a/app/models.py b/app/models.py
index 280166c..e280453 100644
--- a/app/models.py
+++ b/app/models.py
@@ -5,31 +5,37 @@ class TP(models.Model):
     # uid
     uid = models.AutoField(primary_key=True)
     # 视频哈希
-    video_hash = models.CharField(max_length=50)
+    video_hash = models.CharField(max_length=50, verbose_name='视频哈希')
     # 记录仪时间
-    record_time = models.DateTimeField()
+    record_time = models.DateTimeField(verbose_name='记录仪时间')
     # 警号
-    police_id = models.CharField(max_length=50)
+    police_id = models.CharField(max_length=50, null=True, blank=True, verbose_name='警号')    # 警号可为空可不传
     # 事件类型
-    event_type = models.CharField(max_length=50)
+    event_type = models.CharField(max_length=50, verbose_name='事件类型')
     # 是否违规
-    is_violation = models.BooleanField()
+    is_violation = models.BooleanField(verbose_name='是否违规')
     # 缩略图
-    small_image = models.CharField(max_length=100)
+    small_image = models.CharField(max_length=100, verbose_name='缩略图')
     # 相对时间
-    relative_time = models.FloatField()
+    relative_time = models.FloatField(verbose_name='相对时间')
     # 视频路径
-    video_dir = models.CharField(max_length=100)
+    video_dir = models.CharField(max_length=100, verbose_name='视频路径')
     # 车牌号
-    car_number = models.CharField(max_length=50)
+    car_number = models.CharField(max_length=50, verbose_name='车牌号', null=True, blank=True)    # 车牌可为空可不传
     # 分析结果
-    ai_analysis = models.CharField(max_length=255)
+    ai_analysis = models.CharField(max_length=255, verbose_name='分析结果', null=True, blank=True)  # 分析结果可为空可不传
     # 加入时间
-    add_time = models.DateTimeField(auto_now_add=True)
+    add_time = models.DateTimeField(auto_now_add=True, verbose_name='加入时间')
     # 更新时间
-    update_time = models.DateTimeField(auto_now=True)
+    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
     # 是否显示
-    is_display = models.BooleanField(default=True)
+    is_display = models.BooleanField(default=True, verbose_name='是否显示')
+
+    class Meta:
+        db_table = "app_tp"
+
+        # 排序 uid倒序
+        ordering = ['-uid']
 
 
 
diff --git a/app/serializers.py b/app/serializers.py
index e355336..78bf8f4 100644
--- a/app/serializers.py
+++ b/app/serializers.py
@@ -20,6 +20,10 @@ class SerialFilter(FilterSet):
     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')
+    # 记录时间范围查询
+    start_time = django_filters.DateTimeFilter(field_name='record_time', lookup_expr='gte')
+    end_time = django_filters.DateTimeFilter(field_name='record_time', lookup_expr='lte')
+
     class Meta:
         # 指定模型
         models = TP
diff --git a/app/urls.py b/app/urls.py
index 2d77315..1e43fe6 100644
--- a/app/urls.py
+++ b/app/urls.py
@@ -23,4 +23,4 @@ router.register('', views.ModelQuery)
 
 urlpatterns = [
     path('', include(router.urls)),
-]
\ No newline at end of file
+]
diff --git a/app/views.py b/app/views.py
index f59f177..7b3c4d8 100644
--- a/app/views.py
+++ b/app/views.py
@@ -10,7 +10,7 @@ from app.pagination import MyPageNumberPagination
 
 class ModelQuery(viewsets.ModelViewSet):
     # 查询类
-    queryset = TP.objects.all().order_by("uid")
+    queryset = TP.objects.all().order_by("-uid")   # 按照uid倒序
     # 序列化类
     serializer_class = SerialMyModel
     # 分页类
@@ -18,4 +18,3 @@ class ModelQuery(viewsets.ModelViewSet):
 
     # 条件筛选
     filterset_class = SerialFilter
-