From b3f103ed22d7cc2328836d9656f32e1ec91b7619 Mon Sep 17 00:00:00 2001 From: kongfp Date: Fri, 14 Jul 2023 13:27:35 +0800 Subject: [PATCH] add business logic --- XZNSH后台接口文档.md | 251 +++++++++++-------------------- app/admin.py | 4 +- app/models.py | 31 ++-- app/serializers.py | 14 +- app/urls.py | 8 +- app/views.py | 18 +-- event/migrations/0001_initial.py | 27 ---- event/models.py | 2 +- mymiddleware/middleware.py | 2 + start.sh | 2 +- user/migrations/0001_initial.py | 48 ------ user/models.py | 2 +- user/tests.py | 4 +- 13 files changed, 127 insertions(+), 286 deletions(-) delete mode 100644 event/migrations/0001_initial.py delete mode 100644 user/migrations/0001_initial.py diff --git a/XZNSH后台接口文档.md b/XZNSH后台接口文档.md index 344712d..58fdc12 100644 --- a/XZNSH后台接口文档.md +++ b/XZNSH后台接口文档.md @@ -1,24 +1,18 @@ - - - - - - # XZNSH后台接口文档
-条件查询 +查询 - 请求方式:GET -- 请求链接:http://127.0.0.1:8002/api/ +- 请求链接:/api/ - 请求参数: - | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | - | ----------- |---------------------| -------- |--------| ---------- | - | record_time | 2023-05-26 13:09:05 | 否 | string | 记录仪时间 | - | police_id | 00000001 | 否 | string | 警号 | - | event_type | 0 | 否 | string | 事件类型 | + | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | + | ----------- | ------------------- | -------- | -------- | ---------- | + | record_time | 2023-05-26 13:09:05 | 否 | string | 记录仪时间 | + | | | | | | + | event_type | 工作人员操作按键 | 否 | string | 事件类型 | - 可选参数: @@ -33,67 +27,27 @@ | ---------------- | ------------------------------------------------- | -------- |--------------| | 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 | 记录添加时间(自动添加) | + | record_time | 2023-05-26 13:09:05 | string | 视频显示时间 | + | event_type | 工作人员操作按键 | string | 事件类型 | + | is_violation | true | bool | 是否违规 | + | violation_reason | | string | 违规原因 | + | thumbnail | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | + | scene | atm机器操作 | string | 场景 | + | video_path | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | + | ai_analysis | | string | 分析结果 | + | insert_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | | is_display | true | bool | 是否展示(自动添加) | - | is_illegal | True | bool | 行人是否违法 | + - -
- -
-查询所有 - -- 请求方式:GET - -- 请求链接:http://127.0.0.1:8002/api/ - -- 可选参数: - - | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | - | --------- | ------ | -------- | -------- | -------------------- | - | page | 1 | 否 | string | 页码 | - | page_size | 20 | 否 | string | 页面大小(每页条数) | - -- 返回值 - - | 参数名 | 参数值 | 参数类型 | 描述说明 | - | ------------- | ------------------------------------------------- | -------- | ------------------------ | - | 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 | 是否展示(自动添加) | - - -
-
新增数据 - 请求方式:POST -- 请求链接:http://127.0.0.1:8002/api/ +- 请求链接:/api/ - 请求body: @@ -101,58 +55,53 @@ { "video_hash": "vbhdrbvcw", "record_time": "2023-05-26 13:09:05", - "police_id": "00000002", - "event_type": "1", + "scene": "atm机器操作", + "event_type": "工作人员操作按键", "is_violation": true, - "small_image": "nvikefrooiwer", - "relative_time": 4.0, - "video_dir": "/d/test", - "car_number": "苏a045689", - "ai_analysis": "违规" + "violation_reason": "", + "thumbnail": "nvikefrooiwer", + "video_path": "/d/test", + "ai_analysis": "" } ``` | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | | ------------- |---------------------| -------- |----------| ------ | -| video_hash | vbhdrbvcw | 是 | string | 视频哈希 | - | record_time | 2023-05-26 13:09:05 | 是 | datetime | 记录仪时间 | - | police_id | 00000002 | 是 | string | 警号 | - | event_type | 1 | 是 | string | 事件类型 | + | video_hash | vbhdrbvcw | 是 | string | 视频哈希 | + | record_time | 2023-05-26 13:09:05 | 是 | datetime | 视频显示时间 | +| scene | atm机器操作 | 是 | string | 场景 | + | event_type | 工作人员操作按键 | 是 | string | 事件类型 | | is_violation | true | 是 | bool | 是否违规 | - | small_image | nvikefrooiwer | 是 | string | 缩略图 | - | relative_time | 4.0 | 是 | int | 相对时间 | - | video_dir | /d/test | 是 | string | 视频路径 | - | car_number | 苏a045689 | 是 | string | 车牌号 | - | ai_analysis | 违规 | 是 | string | 分析结果 | + | violation_reason | | string | 违规原因 | + | thumbnail | nvikefrooiwer | 是 | string | 缩略图 | + | video_path | /d/test | 是 | string | 视频路径 | + | ai_analysis | | 是 | string | 分析结果 | - 返回值 - | 参数名 | 参数值 | 参数类型 | 描述说明 | - | ------------- | ------------------------------------------------- | -------- | ------------------------ | - | 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 | 视频显示时间 | + | event_type | 工作人员操作按键 | string | 事件类型 | + | is_violation | true | bool | 是否违规 | + | violation_reason | | string | 违规原因 | + | thumbnail | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | + | scene | atm机器操作 | string | 场景 | + | video_path | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | + | ai_analysis | | string | 分析结果 | + | insert_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | + | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | + | is_display | true | bool | 是否展示(自动添加) | +
修改数据 - 请求方式:put -- 请求链接:http://127.0.0.1:8002/api/20/ +- 请求链接:/api// - 请求body: @@ -160,93 +109,66 @@ { "video_hash": "vbhdrbvcw", "record_time": "2023-05-26 13:09:05", - "police_id": "00000002", - "event_type": "1", + "scene": "atm机器操作", + "event_type": "工作人员操作按键", "is_violation": true, - "small_image": "nvikefrooiwer", - "relative_time": 4.0, - "video_dir": "/d/test", - "car_number": "苏a045689", - "ai_analysis": "违规" + "thumbnail": "nvikefrooiwer", + "video_path": "/d/test", + "ai_analysis": "" } ``` - | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | - | ------------- |---------------------| -------- |-----|-------| -| video_hash | vbhdrbvcw | 是 | string | 视频哈希 | - | record_time | 2023-05-26 13:09:05 | 是 | string | 记录仪时间 | - | police_id | 00000002 | 是 | string | 警号 | - | event_type | 1 | 是 | string | 事件类型 | - | is_violation | true | 是 | bool | 是否违规 | - | small_image | nvikefrooiwer | 是 | string | 缩略图 | - | relative_time | 4.0 | 是 | float | 相对时间 | - | video_dir | /d/test | 是 | string | 视频路径 | - | car_number | 苏a045689 | 是 | string | 车牌号 | - | ai_analysis | 违规 | 是 | string | 分析结果 | + | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | + | ------------- |---------------------| -------- |----------| ------ | + | video_hash | vbhdrbvcw | 是 | string | 视频哈希 | + | record_time | 2023-05-26 13:09:05 | 是 | datetime | 视频显示时间 | +| scene | atm机器操作 | 是 | string | 场景 | + | event_type | 工作人员操作按键 | 是 | string | 事件类型 | + | is_violation | true | 是 | bool | 是否违规 | + | violation_reason | | string | 违规原因 | + | thumbnail | nvikefrooiwer | 是 | string | 缩略图 | + | video_path | /d/test | 是 | string | 视频路径 | + | ai_analysis | | 是 | string | 分析结果 | -- 备注:操作会修改uid为20的数据 +- 返回值 -- 返回值: + | 参数名 | 参数值 | 参数类型 | 描述说明 | + | ---------------- | ------------------------------------------------- | -------- |--------------| + | uid | 20 | int | 自增 | + | video_hash | vbhdrbvcw | string | 视频哈希值 | + | record_time | 2023-05-26 13:09:05 | string | 视频显示时间 | + | event_type | 工作人员操作按键 | string | 事件类型 | + | is_violation | true | bool | 是否违规 | + | violation_reason | | string | 违规原因 | + | thumbnail | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | + | scene | atm机器操作 | string | 场景 | + | video_path | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | + | ai_analysis | | string | 分析结果 | + | insert_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 | 是否展示(自动添加) | - - -
- 删除数据 - 请求方式:delete -- 请求链接:http://127.0.0.1:8002/api/20/ +- 请求链接:/api// - 备注:操作会删除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 | 是否展示(自动添加) | - - -
-
+ +
登录 - 请求方式:POST -- 请求链接:http://192.168.10.13:8000/api/login +- 请求链接:/api/login - 请求body: @@ -274,6 +196,3 @@ | roles | [] | list | 角色列表 | | accessToken | eyJhbGciOiJIUzI1NiIsInR5cCI6 | string | token值 | | expires | Wed Jul 5 16:03:31 2023 | string | token过期时间 | - - -
\ No newline at end of file diff --git a/app/admin.py b/app/admin.py index a932cee..21f4cb8 100644 --- a/app/admin.py +++ b/app/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin # Register your models here. -from app.models import TP -admin.site.register(TP) +from app.models import XZNSH +admin.site.register(XZNSH) diff --git a/app/models.py b/app/models.py index 8d654b1..b757e4d 100644 --- a/app/models.py +++ b/app/models.py @@ -3,40 +3,35 @@ from django.db import models # Create your models here. -class TP(models.Model): +class XZNSH(models.Model): # uid uid = models.AutoField(primary_key=True) # 视频哈希 video_hash = models.CharField(max_length=1024, verbose_name='视频哈希') - # 记录仪时间 - record_time = models.DateTimeField(verbose_name='记录仪时间') - # 警号 - police_id = models.CharField(max_length=50, null=True, blank=True, verbose_name='警号') # 警号可为空可不传 + # 时间 + record_time = models.DateTimeField(verbose_name='记录仪时间', null=True, default=None) + # 场景 + scene = models.CharField(max_length=50, verbose_name='场景', null=True, blank=True) # 事件类型 - event_type = models.CharField(max_length=50, verbose_name='事件类型/车辆违法原因', null=True, blank=True) # 还没迁移 + event_type = models.CharField(max_length=50, verbose_name='事件类型', null=True, blank=True) # 还没迁移 # 是否违规 - is_violation = models.BooleanField(verbose_name='执法人员是否违规', null=True, blank=True) + is_violation = models.BooleanField(verbose_name='是否违规', null=True, blank=True) + # 违规原因 + violation_reason = models.CharField(max_length=255, verbose_name='违规原因', null=True, blank=True) # 缩略图 - small_image = models.CharField(max_length=100, verbose_name='缩略图') - # 相对时间 - relative_time = models.FloatField(verbose_name='相对时间') + thumbnail = models.CharField(max_length=100, verbose_name='缩略图') # 视频路径 - video_dir = models.CharField(max_length=100, verbose_name='视频路径') - # 车牌号 - car_number = models.CharField(max_length=50, verbose_name='车牌号', null=True, blank=True) # 车牌可为空可不传 + video_path = models.CharField(max_length=100, verbose_name='视频路径') # 分析结果 - ai_analysis = models.CharField(max_length=255, verbose_name='执法人员违规行为', null=True, blank=True) # 分析结果可为空可不传 + ai_analysis = models.CharField(max_length=255, verbose_name='分析结果', null=True, blank=True) # 加入时间 - add_time = models.DateTimeField(auto_now_add=True, verbose_name='加入时间') + insert_time = models.DateTimeField(auto_now_add=True, verbose_name='插入时间') # 更新时间 update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') # 是否显示 is_display = models.BooleanField(default=True, verbose_name='是否显示') - is_illegal = models.BooleanField(verbose_name='车辆是否违法', null=True, blank=True) - class Meta: - db_table = "app_tp" # 排序 uid倒序 ordering = ['-uid'] diff --git a/app/serializers.py b/app/serializers.py index fabae95..ff92bd3 100644 --- a/app/serializers.py +++ b/app/serializers.py @@ -3,12 +3,14 @@ import datetime from rest_framework import serializers from django_filters.rest_framework import FilterSet import django_filters -from app.models import TP +from app.models import XZNSH import logging logger = logging.getLogger('mylogger') + + class SerialMyModel(serializers.ModelSerializer): class Meta: - model = TP + model = XZNSH fields = "__all__" @@ -20,7 +22,7 @@ class SerialFilter(FilterSet): 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') + scene = django_filters.CharFilter(field_name='scene', 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') @@ -32,7 +34,7 @@ class SerialFilter(FilterSet): def time_range_filter(self, queryset, name, value): """ - @params queryset: 为TP.objects.all()返回的合集, 即视图类中的的queryset + @params queryset: 为objects.all()返回的合集, 即视图类中的的queryset @params name: 为field_name @params value: 为前端通过end_time字段传过来的值 """ @@ -51,8 +53,8 @@ class SerialFilter(FilterSet): class Meta: # 指定模型 - models = TP + models = XZNSH # 指定需要模糊查询的字段 - fields = ("record_time", "police_id", "event_type", "ai_analysis",) + fields = ("record_time", "scene", "event_type", "ai_analysis",) diff --git a/app/urls.py b/app/urls.py index eddd084..933144f 100644 --- a/app/urls.py +++ b/app/urls.py @@ -19,11 +19,11 @@ from rest_framework.routers import DefaultRouter from app import views router = DefaultRouter() -router.register('', views.ModelQuery) +router.register('', views.XZNSHModelViewSet) urlpatterns = [ path('', include(router.urls)), - path('add_user', views.RegisterLoginViewSet.as_view({"post": "tp_register"})), - path('login', views.LoginView.as_view({"post": "tp_login"})), - path('events', views.ModelQuery.as_view({"get": "query_event"})), + path('add_user', views.RegisterLoginViewSet.as_view({"post": "register"})), + path('login', views.LoginView.as_view({"post": "login"})), + path('events', views.XZNSHModelViewSet.as_view({"get": "get_events"})) ] diff --git a/app/views.py b/app/views.py index b6a33ca..b4724f4 100644 --- a/app/views.py +++ b/app/views.py @@ -1,13 +1,11 @@ import logging from django.db.models import Count -from django.shortcuts import render -from django.views.decorators.http import require_http_methods # Create your views here. from rest_framework import viewsets from rest_framework.response import Response -from app.models import TP +from app.models import XZNSH from app.serializers import SerialMyModel, SerialFilter from app.pagination import MyPageNumberPagination from user.models import UserProfile @@ -17,9 +15,9 @@ from .utils import generate_token, decode_token_exp_time logger = logging.getLogger('mylogger') -class ModelQuery(viewsets.ModelViewSet): +class XZNSHModelViewSet(viewsets.ModelViewSet): # 查询类 - queryset = TP.objects.all().order_by("-uid") # 按照uid倒序 + queryset = XZNSH.objects.all().order_by("-uid") # 按照uid倒序 # 序列化类 serializer_class = SerialMyModel # 分页类 @@ -28,8 +26,8 @@ class ModelQuery(viewsets.ModelViewSet): # 条件筛选 filterset_class = SerialFilter - def query_event(self, request, *args, **kwargs): - res = TP.objects.values('event_type').annotate(count=Count('event_type')).order_by('-count') + def get_events(self, request, *args, **kwargs): + res = self.queryset.values('event_type').annotate(count=Count('event_type')).order_by('-count') result = list(res) data = dict() for index, item in enumerate(result, 1): @@ -43,7 +41,7 @@ class ModelQuery(viewsets.ModelViewSet): class RegisterLoginViewSet(viewsets.ModelViewSet): - def tp_register(self, request, *args, **kwargs): + def register(self, request, *args, **kwargs): """注册 POST""" # 判断用户是否为管理员 # user = request.user @@ -66,7 +64,7 @@ class RegisterLoginViewSet(viewsets.ModelViewSet): class LoginView(viewsets.ModelViewSet): - def tp_login(self, request, *args, **kwargs): + def login(self, request, *args, **kwargs): """登录 POST""" data = request.data username = data.get('username') @@ -99,6 +97,6 @@ class LoginView(viewsets.ModelViewSet): } return Response(response) - def tp_logout(self, request, *args, **kwargs): + def logout(self, request, *args, **kwargs): """登出 GET""" pass diff --git a/event/migrations/0001_initial.py b/event/migrations/0001_initial.py deleted file mode 100644 index ebe90a7..0000000 --- a/event/migrations/0001_initial.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 3.2.19 on 2023-06-30 16:19 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Event', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('event_name', models.CharField(default='', max_length=256, verbose_name='事件名')), - ('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), - ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')), - ], - options={ - 'db_table': 'tp_event', - 'ordering': ['-id'], - }, - ), - ] diff --git a/event/models.py b/event/models.py index 4126726..4e22a07 100644 --- a/event/models.py +++ b/event/models.py @@ -9,5 +9,5 @@ class Event(models.Model): update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') class Meta: - db_table = 'tp_event' + db_table = 'xznsh_event' ordering = ['-id'] diff --git a/mymiddleware/middleware.py b/mymiddleware/middleware.py index 81c96ab..6004c95 100644 --- a/mymiddleware/middleware.py +++ b/mymiddleware/middleware.py @@ -9,6 +9,8 @@ import logging from rest_framework.response import Response logger = logging.getLogger('mylogger') + + class CheckTokenMiddleware(MiddlewareMixin): def process_request(self, request): # todo 登录时不需要校验token diff --git a/start.sh b/start.sh index f01c80d..9860145 100644 --- a/start.sh +++ b/start.sh @@ -3,7 +3,7 @@ python manage.py makemigrations&& python manage.py migrate&& uwsgi --ini /home/myproject/uwsgi.ini&& -echo 'TP项目启动完成' +echo 'XZNSH项目启动完成' tail -f /dev/null exec "$@" \ No newline at end of file diff --git a/user/migrations/0001_initial.py b/user/migrations/0001_initial.py deleted file mode 100644 index 1f0eb57..0000000 --- a/user/migrations/0001_initial.py +++ /dev/null @@ -1,48 +0,0 @@ -# Generated by Django 3.2.19 on 2023-06-30 16:19 - -import django.contrib.auth.models -import django.contrib.auth.validators -from django.db import migrations, models -import django.utils.timezone - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('auth', '0012_alter_user_first_name_max_length'), - ] - - operations = [ - migrations.CreateModel( - name='UserProfile', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('password', models.CharField(max_length=128, verbose_name='password')), - ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), - ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), - ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), - ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), - ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), - ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), - ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), - ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), - ('organization', models.CharField(blank=True, max_length=256, null=True, verbose_name='组织')), - ('gender', models.IntegerField(choices=[(0, '女'), (1, '男')], default=1, verbose_name='性别')), - ('phone_number', models.CharField(blank=True, max_length=12, null=True, verbose_name='手机号')), - ('head_sculpture', models.CharField(blank=True, max_length=512, null=True, verbose_name='头像')), - ('status', models.IntegerField(default=0, verbose_name='状态')), - ('recorder_number', models.CharField(blank=True, max_length=256, null=True, verbose_name='执法记录仪编号')), - ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), - ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), - ], - options={ - 'db_table': 'tp_user', - }, - managers=[ - ('objects', django.contrib.auth.models.UserManager()), - ], - ), - ] diff --git a/user/models.py b/user/models.py index 2024c99..934d813 100644 --- a/user/models.py +++ b/user/models.py @@ -14,7 +14,7 @@ class UserProfile(AbstractUser): recorder_number = models.CharField(max_length=256, verbose_name='执法记录仪编号', null=True, blank=True) class Meta: - db_table = 'tp_user' + db_table = 'xznsh_user' diff --git a/user/tests.py b/user/tests.py index 5a31890..489ee18 100644 --- a/user/tests.py +++ b/user/tests.py @@ -262,13 +262,13 @@ l1 = [ l2 = [] -from app.models import TP +from app.models import XZNSH def import_data(data): try: for item in data: - TP.objects.create(**item) + XZNSH.objects.create(**item) return except Exception as e: print(e)