add business logic

master
kongfp 2 years ago
parent 75fc321db7
commit b3f103ed22

@ -1,24 +1,18 @@
# XZNSH后台接口文档 # XZNSH后台接口文档
<details> <details>
<summary>条件查询</summary> <summary>查询</summary>
- 请求方式GET - 请求方式GET
- 请求链接:http://127.0.0.1:8002/api/ - 请求链接:/api/
- 请求参数: - 请求参数:
| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
| ----------- |---------------------| -------- |--------| ---------- | | ----------- | ------------------- | -------- | -------- | ---------- |
| record_time | 2023-05-26 13:09:05 | 否 | string | 记录仪时间 | | record_time | 2023-05-26 13:09:05 | 否 | string | 记录仪时间 |
| police_id | 00000001 | 否 | string | 警号 | | | | | | |
| event_type | 0 | 否 | string | 事件类型 | | event_type | 工作人员操作按键 | 否 | string | 事件类型 |
- 可选参数: - 可选参数:
@ -33,67 +27,27 @@
| ---------------- | ------------------------------------------------- | -------- |--------------| | ---------------- | ------------------------------------------------- | -------- |--------------|
| uid | 1 | int | 自增 | | uid | 1 | int | 自增 |
| video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 |
| record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | | record_time | 2023-05-26 13:09:05 | string | 视频显示时间 |
| police_id | 00000001 | string | 警号 | | event_type | 工作人员操作按键 | 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 | 是否展示(自动添加) |
| is_illegal | True | bool | 行人是否违法 |
</details>
<details>
<summary>查询所有</summary>
- 请求方式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 | 是否违规 | | is_violation | true | bool | 是否违规 |
| small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | | violation_reason | | string | 违规原因 |
| relative_time | 4.0 | float | 相对时间 | | thumbnail | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 |
| video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | | scene | atm机器操作 | string | 场景 |
| car_number | 苏a045689 | string | 车牌号 | | video_path | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 |
| ai_analysis | 违规 | string | 分析结果 | | ai_analysis | | string | 分析结果 |
| add_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | | insert_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) |
| update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) |
| is_display | true | bool | 是否展示(自动添加) | | is_display | true | bool | 是否展示(自动添加) |
</details>
<details> <details>
<summary>新增数据</summary> <summary>新增数据</summary>
- 请求方式POST - 请求方式POST
- 请求链接:http://127.0.0.1:8002/api/ - 请求链接:/api/
- 请求body - 请求body
@ -101,58 +55,53 @@
{ {
"video_hash": "vbhdrbvcw", "video_hash": "vbhdrbvcw",
"record_time": "2023-05-26 13:09:05", "record_time": "2023-05-26 13:09:05",
"police_id": "00000002", "scene": "atm机器操作",
"event_type": "1", "event_type": "工作人员操作按键",
"is_violation": true, "is_violation": true,
"small_image": "nvikefrooiwer", "violation_reason": "",
"relative_time": 4.0, "thumbnail": "nvikefrooiwer",
"video_dir": "/d/test", "video_path": "/d/test",
"car_number": "苏a045689", "ai_analysis": ""
"ai_analysis": "违规"
} }
``` ```
| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
| ------------- |---------------------| -------- |----------| ------ | | ------------- |---------------------| -------- |----------| ------ |
| video_hash | vbhdrbvcw | 是 | string | 视频哈希 | | video_hash | vbhdrbvcw | 是 | string | 视频哈希 |
| record_time | 2023-05-26 13:09:05 | 是 | datetime | 记录仪时间 | | record_time | 2023-05-26 13:09:05 | 是 | datetime | 视频显示时间 |
| police_id | 00000002 | 是 | string | 警号 | | scene | atm机器操作 | 是 | string | 场景 |
| event_type | 1 | 是 | string | 事件类型 | | event_type | 工作人员操作按键 | 是 | string | 事件类型 |
| is_violation | true | 是 | bool | 是否违规 | | is_violation | true | 是 | bool | 是否违规 |
| small_image | nvikefrooiwer | 是 | string | 缩略图 | | violation_reason | | string | 违规原因 |
| relative_time | 4.0 | 是 | int | 相对时间 | | thumbnail | nvikefrooiwer | 是 | string | 缩略图 |
| video_dir | /d/test | 是 | string | 视频路径 | | video_path | /d/test | 是 | string | 视频路径 |
| car_number | 苏a045689 | 是 | string | 车牌号 | | ai_analysis | | 是 | string | 分析结果 |
| ai_analysis | 违规 | 是 | string | 分析结果 |
- 返回值 - 返回值
| 参数名 | 参数值 | 参数类型 | 描述说明 | | 参数名 | 参数值 | 参数类型 | 描述说明 |
| ------------- | ------------------------------------------------- | -------- | ------------------------ | | ---------------- | ------------------------------------------------- | -------- |--------------|
| uid | 1 | int | 自增 | | uid | 1 | int | 自增 |
| video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | | video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 |
| record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | | record_time | 2023-05-26 13:09:05 | string | 视频显示时间 |
| police_id | 00000001 | string | 警号 | | event_type | 工作人员操作按键 | string | 事件类型 |
| event_type | 1 | string | 事件类型 |
| is_violation | true | bool | 是否违规 | | is_violation | true | bool | 是否违规 |
| small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | | violation_reason | | string | 违规原因 |
| relative_time | 4.0 | float | 相对时间 | | thumbnail | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 |
| video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | | scene | atm机器操作 | string | 场景 |
| car_number | 苏a045689 | string | 车牌号 | | video_path | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 |
| ai_analysis | 违规 | string | 分析结果 | | ai_analysis | | string | 分析结果 |
| add_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | | insert_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) |
| update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) |
| is_display | true | bool | 是否展示(自动添加) | | is_display | true | bool | 是否展示(自动添加) |
</details>
<details> <details>
<summary>修改数据</summary> <summary>修改数据</summary>
- 请求方式put - 请求方式put
- 请求链接:http://127.0.0.1:8002/api/20/ - 请求链接:/api/<uid>/
- 请求body - 请求body
@ -160,93 +109,66 @@
{ {
"video_hash": "vbhdrbvcw", "video_hash": "vbhdrbvcw",
"record_time": "2023-05-26 13:09:05", "record_time": "2023-05-26 13:09:05",
"police_id": "00000002", "scene": "atm机器操作",
"event_type": "1", "event_type": "工作人员操作按键",
"is_violation": true, "is_violation": true,
"small_image": "nvikefrooiwer", "thumbnail": "nvikefrooiwer",
"relative_time": 4.0, "video_path": "/d/test",
"video_dir": "/d/test", "ai_analysis": ""
"car_number": "苏a045689",
"ai_analysis": "违规"
} }
``` ```
| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 | | 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
| ------------- |---------------------| -------- |-----|-------| | ------------- |---------------------| -------- |----------| ------ |
| video_hash | vbhdrbvcw | 是 | string | 视频哈希 | | video_hash | vbhdrbvcw | 是 | string | 视频哈希 |
| record_time | 2023-05-26 13:09:05 | 是 | string | 记录仪时间 | | record_time | 2023-05-26 13:09:05 | 是 | datetime | 视频显示时间 |
| police_id | 00000002 | 是 | string | 警号 | | scene | atm机器操作 | 是 | string | 场景 |
| event_type | 1 | 是 | string | 事件类型 | | event_type | 工作人员操作按键 | 是 | string | 事件类型 |
| is_violation | true | 是 | bool | 是否违规 | | is_violation | true | 是 | bool | 是否违规 |
| small_image | nvikefrooiwer | 是 | string | 缩略图 | | violation_reason | | string | 违规原因 |
| relative_time | 4.0 | 是 | float | 相对时间 | | thumbnail | nvikefrooiwer | 是 | string | 缩略图 |
| video_dir | /d/test | 是 | string | 视频路径 | | video_path | /d/test | 是 | string | 视频路径 |
| car_number | 苏a045689 | 是 | string | 车牌号 | | ai_analysis | | 是 | string | 分析结果 |
| ai_analysis | 违规 | 是 | string | 分析结果 |
- 备注操作会修改uid为20的数据 - 返回值
- 返回值:
| 参数名 | 参数值 | 参数类型 | 描述说明 | | 参数名 | 参数值 | 参数类型 | 描述说明 |
| ------------- | ------------------------------------------------- | -------- | ---------------------- | | ---------------- | ------------------------------------------------- | -------- |--------------|
| uid | 1 | int | 自增 | | uid | 20 | int | 自增 |
| video_hash | 38fb463b135fa12534104f85492cc6f1 | string | 视频哈希值 | | video_hash | vbhdrbvcw | string | 视频哈希值 |
| record_time | 2023-05-26 13:09:05 | string | 记录仪时间 | | record_time | 2023-05-26 13:09:05 | string | 视频显示时间 |
| police_id | 00000001 | string | 警号 | | event_type | 工作人员操作按键 | string | 事件类型 |
| event_type | 1 | string | 事件类型 |
| is_violation | true | bool | 是否违规 | | is_violation | true | bool | 是否违规 |
| small_image | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 | | violation_reason | | string | 违规原因 |
| relative_time | 4.0 | float | 相对时间 | | thumbnail | http://192.168.0.47:8000/media/images/0000609.jpg | string | 缩略图 |
| video_dir | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 | | scene | atm机器操作 | string | 场景 |
| car_number | 苏a045689 | string | 车牌号 | | video_path | http://192.168.0.47:8000/media/video/B1.MP4 | string | 视频地址 |
| ai_analysis | 违规 | string | 分析结果 | | ai_analysis | | string | 分析结果 |
| add_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) | | insert_time | 2023-05-31 18:42:15 | string | 记录添加时间(自动添加) |
| update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) | | update_time | 2023-05-31 18:42:15 | string | 记录更新时间(自动添加) |
| is_display | true | bool | 是否展示(自动添加) | | is_display | true | bool | 是否展示(自动添加) |
</details>
<details> <details>
<summary>删除数据</summary> <summary>删除数据</summary>
- 请求方式delete - 请求方式delete
- 请求链接:http://127.0.0.1:8002/api/20/ - 请求链接:/api/<uid>/
- 备注操作会删除uid为20的数据 - 备注操作会删除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 | 是否展示(自动添加) |
</details>
<details> <details>
<summary>登录</summary> <summary>登录</summary>
- 请求方式POST - 请求方式POST
- 请求链接:http://192.168.10.13:8000/api/login - 请求链接:/api/login
- 请求body - 请求body
@ -274,6 +196,3 @@
| roles | [] | list | 角色列表 | | roles | [] | list | 角色列表 |
| accessToken | eyJhbGciOiJIUzI1NiIsInR5cCI6 | string | token值 | | accessToken | eyJhbGciOiJIUzI1NiIsInR5cCI6 | string | token值 |
| expires | Wed Jul 5 16:03:31 2023 | string | token过期时间 | | expires | Wed Jul 5 16:03:31 2023 | string | token过期时间 |
</details>

@ -1,5 +1,5 @@
from django.contrib import admin from django.contrib import admin
# Register your models here. # Register your models here.
from app.models import TP from app.models import XZNSH
admin.site.register(TP) admin.site.register(XZNSH)

@ -3,40 +3,35 @@ from django.db import models
# Create your models here. # Create your models here.
class TP(models.Model): class XZNSH(models.Model):
# uid # uid
uid = models.AutoField(primary_key=True) uid = models.AutoField(primary_key=True)
# 视频哈希 # 视频哈希
video_hash = models.CharField(max_length=1024, verbose_name='视频哈希') video_hash = models.CharField(max_length=1024, verbose_name='视频哈希')
# 记录仪时间 # 时间
record_time = models.DateTimeField(verbose_name='记录仪时间') record_time = models.DateTimeField(verbose_name='记录仪时间', null=True, default=None)
# 警号 # 场景
police_id = models.CharField(max_length=50, null=True, blank=True, verbose_name='警号') # 警号可为空可不传 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='缩略图') thumbnail = models.CharField(max_length=100, verbose_name='缩略图')
# 相对时间
relative_time = models.FloatField(verbose_name='相对时间')
# 视频路径 # 视频路径
video_dir = models.CharField(max_length=100, verbose_name='视频路径') video_path = models.CharField(max_length=100, verbose_name='视频路径')
# 车牌号
car_number = models.CharField(max_length=50, verbose_name='车牌号', null=True, blank=True) # 车牌可为空可不传
# 分析结果 # 分析结果
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='更新时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
# 是否显示 # 是否显示
is_display = models.BooleanField(default=True, verbose_name='是否显示') is_display = models.BooleanField(default=True, verbose_name='是否显示')
is_illegal = models.BooleanField(verbose_name='车辆是否违法', null=True, blank=True)
class Meta: class Meta:
db_table = "app_tp"
# 排序 uid倒序 # 排序 uid倒序
ordering = ['-uid'] ordering = ['-uid']

@ -3,12 +3,14 @@ import datetime
from rest_framework import serializers from rest_framework import serializers
from django_filters.rest_framework import FilterSet from django_filters.rest_framework import FilterSet
import django_filters import django_filters
from app.models import TP from app.models import XZNSH
import logging import logging
logger = logging.getLogger('mylogger') logger = logging.getLogger('mylogger')
class SerialMyModel(serializers.ModelSerializer): class SerialMyModel(serializers.ModelSerializer):
class Meta: class Meta:
model = TP model = XZNSH
fields = "__all__" fields = "__all__"
@ -20,7 +22,7 @@ class SerialFilter(FilterSet):
event_type支持模糊匹配 event_type支持模糊匹配
""" """
record_time = django_filters.DateTimeFilter(field_name='record_time', lookup_expr='icontains') 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') event_type = django_filters.CharFilter(field_name='event_type', lookup_expr='icontains')
# 记录时间范围查询 # 记录时间范围查询
start_time = django_filters.DateTimeFilter(field_name='record_time', lookup_expr='gte') 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): def time_range_filter(self, queryset, name, value):
""" """
@params queryset: TP.objects.all()返回的合集, 即视图类中的的queryset @params queryset: objects.all()返回的合集, 即视图类中的的queryset
@params name: 为field_name @params name: 为field_name
@params value: 为前端通过end_time字段传过来的值 @params value: 为前端通过end_time字段传过来的值
""" """
@ -51,8 +53,8 @@ class SerialFilter(FilterSet):
class Meta: class Meta:
# 指定模型 # 指定模型
models = TP models = XZNSH
# 指定需要模糊查询的字段 # 指定需要模糊查询的字段
fields = ("record_time", "police_id", "event_type", "ai_analysis",) fields = ("record_time", "scene", "event_type", "ai_analysis",)

@ -19,11 +19,11 @@ from rest_framework.routers import DefaultRouter
from app import views from app import views
router = DefaultRouter() router = DefaultRouter()
router.register('', views.ModelQuery) router.register('', views.XZNSHModelViewSet)
urlpatterns = [ urlpatterns = [
path('', include(router.urls)), path('', include(router.urls)),
path('add_user', views.RegisterLoginViewSet.as_view({"post": "tp_register"})), path('add_user', views.RegisterLoginViewSet.as_view({"post": "register"})),
path('login', views.LoginView.as_view({"post": "tp_login"})), path('login', views.LoginView.as_view({"post": "login"})),
path('events', views.ModelQuery.as_view({"get": "query_event"})), path('events', views.XZNSHModelViewSet.as_view({"get": "get_events"}))
] ]

@ -1,13 +1,11 @@
import logging import logging
from django.db.models import Count from django.db.models import Count
from django.shortcuts import render
from django.views.decorators.http import require_http_methods
# Create your views here. # Create your views here.
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.response import Response from rest_framework.response import Response
from app.models import TP from app.models import XZNSH
from app.serializers import SerialMyModel, SerialFilter from app.serializers import SerialMyModel, SerialFilter
from app.pagination import MyPageNumberPagination from app.pagination import MyPageNumberPagination
from user.models import UserProfile from user.models import UserProfile
@ -17,9 +15,9 @@ from .utils import generate_token, decode_token_exp_time
logger = logging.getLogger('mylogger') 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 serializer_class = SerialMyModel
# 分页类 # 分页类
@ -28,8 +26,8 @@ class ModelQuery(viewsets.ModelViewSet):
# 条件筛选 # 条件筛选
filterset_class = SerialFilter filterset_class = SerialFilter
def query_event(self, request, *args, **kwargs): def get_events(self, request, *args, **kwargs):
res = TP.objects.values('event_type').annotate(count=Count('event_type')).order_by('-count') res = self.queryset.values('event_type').annotate(count=Count('event_type')).order_by('-count')
result = list(res) result = list(res)
data = dict() data = dict()
for index, item in enumerate(result, 1): for index, item in enumerate(result, 1):
@ -43,7 +41,7 @@ class ModelQuery(viewsets.ModelViewSet):
class RegisterLoginViewSet(viewsets.ModelViewSet): class RegisterLoginViewSet(viewsets.ModelViewSet):
def tp_register(self, request, *args, **kwargs): def register(self, request, *args, **kwargs):
"""注册 POST""" """注册 POST"""
# 判断用户是否为管理员 # 判断用户是否为管理员
# user = request.user # user = request.user
@ -66,7 +64,7 @@ class RegisterLoginViewSet(viewsets.ModelViewSet):
class LoginView(viewsets.ModelViewSet): class LoginView(viewsets.ModelViewSet):
def tp_login(self, request, *args, **kwargs): def login(self, request, *args, **kwargs):
"""登录 POST""" """登录 POST"""
data = request.data data = request.data
username = data.get('username') username = data.get('username')
@ -99,6 +97,6 @@ class LoginView(viewsets.ModelViewSet):
} }
return Response(response) return Response(response)
def tp_logout(self, request, *args, **kwargs): def logout(self, request, *args, **kwargs):
"""登出 GET""" """登出 GET"""
pass pass

@ -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'],
},
),
]

@ -9,5 +9,5 @@ class Event(models.Model):
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta: class Meta:
db_table = 'tp_event' db_table = 'xznsh_event'
ordering = ['-id'] ordering = ['-id']

@ -9,6 +9,8 @@ import logging
from rest_framework.response import Response from rest_framework.response import Response
logger = logging.getLogger('mylogger') logger = logging.getLogger('mylogger')
class CheckTokenMiddleware(MiddlewareMixin): class CheckTokenMiddleware(MiddlewareMixin):
def process_request(self, request): def process_request(self, request):
# todo 登录时不需要校验token # todo 登录时不需要校验token

@ -3,7 +3,7 @@
python manage.py makemigrations&& python manage.py makemigrations&&
python manage.py migrate&& python manage.py migrate&&
uwsgi --ini /home/myproject/uwsgi.ini&& uwsgi --ini /home/myproject/uwsgi.ini&&
echo 'TP项目启动完成' echo 'XZNSH项目启动完成'
tail -f /dev/null tail -f /dev/null
exec "$@" exec "$@"

@ -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()),
],
),
]

@ -14,7 +14,7 @@ class UserProfile(AbstractUser):
recorder_number = models.CharField(max_length=256, verbose_name='执法记录仪编号', null=True, blank=True) recorder_number = models.CharField(max_length=256, verbose_name='执法记录仪编号', null=True, blank=True)
class Meta: class Meta:
db_table = 'tp_user' db_table = 'xznsh_user'

@ -262,13 +262,13 @@ l1 = [
l2 = [] l2 = []
from app.models import TP from app.models import XZNSH
def import_data(data): def import_data(data):
try: try:
for item in data: for item in data:
TP.objects.create(**item) XZNSH.objects.create(**item)
return return
except Exception as e: except Exception as e:
print(e) print(e)

Loading…
Cancel
Save