diff --git a/TP_PROJECT/TP/settings.py b/TP_PROJECT/TP/settings.py index ef120b7..93718c6 100644 --- a/TP_PROJECT/TP/settings.py +++ b/TP_PROJECT/TP/settings.py @@ -11,6 +11,7 @@ https://docs.djangoproject.com/en/3.2/ref/settings/ """ from pathlib import Path +import os # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent @@ -39,12 +40,14 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'rest_framework', 'django_filters', + 'corsheaders', 'app' ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', @@ -122,7 +125,27 @@ USE_TZ = False STATIC_URL = '/static/' +MEDIA_URL = '/media/' +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') + # Default primary key field type # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +# 解决跨域 +CORS_ALLOW_CREDENTIALS = True +CORS_ORIGIN_ALLOW_ALL = True +CORS_ALLOW_HEADERS = ["*"] + +CORS_ORIGIN_WHITELIST = () +# 对应的发送的请求的跨域 +CORS_ALLOW_METHODS = ( + 'DELETE', + 'GET', + 'OPTIONS', + 'PATCH', + 'POST', + 'PUT', + 'VIEW', +) diff --git a/TP_PROJECT/TP/urls.py b/TP_PROJECT/TP/urls.py index eaa8fa9..b68cd0b 100644 --- a/TP_PROJECT/TP/urls.py +++ b/TP_PROJECT/TP/urls.py @@ -14,9 +14,19 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path, include +from django.urls import path, include, re_path +from django.views.static import serve +from django.conf.urls.static import static +from django.conf import settings +from .settings import MEDIA_ROOT + urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('app.urls')) ] + + +urlpatterns += [ + re_path(r'^media/(?P.*)$', serve, {'document_root': MEDIA_ROOT}), +] diff --git a/TP_PROJECT/app/models.py b/TP_PROJECT/app/models.py index 8bf1406..ca8b970 100644 --- a/TP_PROJECT/app/models.py +++ b/TP_PROJECT/app/models.py @@ -12,15 +12,15 @@ class TP(models.Model): # 警号 police_id = models.CharField(max_length=50) # 事件类型 - event_type = models.IntegerField() + event_type = models.CharField(max_length=50) # 是否违规 is_violation = models.BooleanField() # 缩略图 - small_image = models.CharField(max_length=50) + small_image = models.CharField(max_length=100) # 相对时间 relative_time = models.FloatField() # 视频路径 - video_dir = models.CharField(max_length=50) + video_dir = models.CharField(max_length=100) # 车牌号 car_number = models.CharField(max_length=50) # 分析结果 diff --git a/TP_PROJECT/app/views.py b/TP_PROJECT/app/views.py index c8bafbe..70ac43f 100644 --- a/TP_PROJECT/app/views.py +++ b/TP_PROJECT/app/views.py @@ -2,6 +2,7 @@ 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 diff --git a/TP_PROJECT/db.sqlite3 b/TP_PROJECT/db.sqlite3 index 9e06f3f..44f86f8 100644 Binary files a/TP_PROJECT/db.sqlite3 and b/TP_PROJECT/db.sqlite3 differ diff --git a/TP_PROJECT/media/images/test_1.jpeg b/TP_PROJECT/media/images/test_1.jpeg new file mode 100644 index 0000000..8f60d3f Binary files /dev/null and b/TP_PROJECT/media/images/test_1.jpeg differ diff --git a/TP_PROJECT/media/video/test_1.mp4 b/TP_PROJECT/media/video/test_1.mp4 new file mode 100644 index 0000000..b58ab2d Binary files /dev/null and b/TP_PROJECT/media/video/test_1.mp4 differ