From 5d01458c876cc266ffc5ecc4f82de569b5fbf07f Mon Sep 17 00:00:00 2001 From: radmosley <34037881+radmosley@users.noreply.github.com> Date: Tue, 25 Oct 2022 20:03:14 -0700 Subject: [PATCH 1/3] add api methods --- code/Ronnie/docker_django_vue/.dockerignore | 1 + .../docker_django_vue/backend/api/admin.py | 2 + .../backend/api/migrations/__init__.py | 0 .../docker_django_vue/backend/api/models.py | 6 ++ .../backend/api/serializers.py | 7 ++ .../docker_django_vue/backend/api/urls.py | 10 +++ .../docker_django_vue/backend/api/views.py | 10 ++- .../backend/project/settings.py | 17 ++++- .../docker_django_vue/backend/project/urls.py | 5 +- .../backend/requirements.txt | 8 +++ .../backend/templates/index.html | 70 +++++++++++++++++++ 11 files changed, 131 insertions(+), 5 deletions(-) create mode 100644 code/Ronnie/docker_django_vue/.dockerignore delete mode 100644 code/Ronnie/docker_django_vue/backend/api/migrations/__init__.py create mode 100644 code/Ronnie/docker_django_vue/backend/api/serializers.py create mode 100644 code/Ronnie/docker_django_vue/backend/api/urls.py create mode 100644 code/Ronnie/docker_django_vue/backend/templates/index.html diff --git a/code/Ronnie/docker_django_vue/.dockerignore b/code/Ronnie/docker_django_vue/.dockerignore new file mode 100644 index 00000000..05a4a449 --- /dev/null +++ b/code/Ronnie/docker_django_vue/.dockerignore @@ -0,0 +1 @@ +*/node_modules \ No newline at end of file diff --git a/code/Ronnie/docker_django_vue/backend/api/admin.py b/code/Ronnie/docker_django_vue/backend/api/admin.py index 8c38f3f3..27b5ea6e 100644 --- a/code/Ronnie/docker_django_vue/backend/api/admin.py +++ b/code/Ronnie/docker_django_vue/backend/api/admin.py @@ -1,3 +1,5 @@ from django.contrib import admin +from .models import ToDo # Register your models here. +admin.site.register(ToDo) \ No newline at end of file diff --git a/code/Ronnie/docker_django_vue/backend/api/migrations/__init__.py b/code/Ronnie/docker_django_vue/backend/api/migrations/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/code/Ronnie/docker_django_vue/backend/api/models.py b/code/Ronnie/docker_django_vue/backend/api/models.py index 71a83623..12aeff72 100644 --- a/code/Ronnie/docker_django_vue/backend/api/models.py +++ b/code/Ronnie/docker_django_vue/backend/api/models.py @@ -1,3 +1,9 @@ from django.db import models # Create your models here. +class ToDo(models.Model): + title = models.CharField(max_length=200) + status = models.BooleanField(default=False) + + def __str__(self): + return self.title \ No newline at end of file diff --git a/code/Ronnie/docker_django_vue/backend/api/serializers.py b/code/Ronnie/docker_django_vue/backend/api/serializers.py new file mode 100644 index 00000000..fc2fb3bc --- /dev/null +++ b/code/Ronnie/docker_django_vue/backend/api/serializers.py @@ -0,0 +1,7 @@ +from rest_framework import serializers +from .models import ToDo + +class ToDoSerializer(serializers.ModelSerializer): + class Meta: + fields = ('title', 'status') + model = ToDo \ No newline at end of file diff --git a/code/Ronnie/docker_django_vue/backend/api/urls.py b/code/Ronnie/docker_django_vue/backend/api/urls.py new file mode 100644 index 00000000..39c19410 --- /dev/null +++ b/code/Ronnie/docker_django_vue/backend/api/urls.py @@ -0,0 +1,10 @@ +from rest_framework.routers import DefaultRouter +from django.urls import path +from .views import ToDoViewSet + +router = DefaultRouter() +router.register('todo', ToDoViewSet, basename='ToDo') + +urlpatterns = router.urls + [ + +] \ No newline at end of file diff --git a/code/Ronnie/docker_django_vue/backend/api/views.py b/code/Ronnie/docker_django_vue/backend/api/views.py index 91ea44a2..8e46a876 100644 --- a/code/Ronnie/docker_django_vue/backend/api/views.py +++ b/code/Ronnie/docker_django_vue/backend/api/views.py @@ -1,3 +1,9 @@ -from django.shortcuts import render - +from rest_framework import viewsets +from .models import ToDo +from .serializers import ToDoSerializer # Create your views here. +class ToDoViewSet(viewsets.ModelViewSet): + queryset = ToDo.objects.all() + serializer_class = ToDoSerializer + # Api methods + http_method_names = ["get", "post", "head", "delete", "update"] \ No newline at end of file diff --git a/code/Ronnie/docker_django_vue/backend/project/settings.py b/code/Ronnie/docker_django_vue/backend/project/settings.py index 9907dede..63198b06 100644 --- a/code/Ronnie/docker_django_vue/backend/project/settings.py +++ b/code/Ronnie/docker_django_vue/backend/project/settings.py @@ -9,7 +9,7 @@ For the full list of settings and their values, see https://docs.djangoproject.com/en/4.1/ref/settings/ """ - +import os from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. @@ -37,9 +37,14 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'rest_framework', + 'corsheaders', + 'api', ] MIDDLEWARE = [ + 'corsheaders.middleware.CorsMiddleware', + 'django.middleware.common.CommonMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', @@ -54,7 +59,7 @@ TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -121,3 +126,11 @@ # https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +REST_FRAMEWORK = { + 'DEFAULT_PERMISSION_CLASSES': [ + 'rest_framework.permissions.AllowAny', + ] +} + +CORS_ORIGIN_ALLOW_ALL = True \ No newline at end of file diff --git a/code/Ronnie/docker_django_vue/backend/project/urls.py b/code/Ronnie/docker_django_vue/backend/project/urls.py index 6ebb218c..a31b93c8 100644 --- a/code/Ronnie/docker_django_vue/backend/project/urls.py +++ b/code/Ronnie/docker_django_vue/backend/project/urls.py @@ -14,8 +14,11 @@ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include +from django.views.generic import TemplateView urlpatterns = [ path('admin/', admin.site.urls), + path('api/', include('api.urls')), + path('', TemplateView.as_view(template_name='index.html'), name='index'), ] diff --git a/code/Ronnie/docker_django_vue/backend/requirements.txt b/code/Ronnie/docker_django_vue/backend/requirements.txt index c2e4835f..ae70e869 100644 --- a/code/Ronnie/docker_django_vue/backend/requirements.txt +++ b/code/Ronnie/docker_django_vue/backend/requirements.txt @@ -1,4 +1,12 @@ +asgiref==3.5.2 +certifi==2022.9.14 +charset-normalizer==2.1.1 Django==4.1 +django-cors-headers==3.13.0 djangorestframework==3.14.0 +idna==3.4 Pillow==9.2.0 +pytz==2022.2.1 requests==2.28.1 +sqlparse==0.4.2 +urllib3==1.26.12 diff --git a/code/Ronnie/docker_django_vue/backend/templates/index.html b/code/Ronnie/docker_django_vue/backend/templates/index.html new file mode 100644 index 00000000..dfda8700 --- /dev/null +++ b/code/Ronnie/docker_django_vue/backend/templates/index.html @@ -0,0 +1,70 @@ + + + + + + + + + ToDo Items + + +
+
+ +
+ +
+ + + + From b29712973c7346b8d4615a7b33d9386a1a8fd54e Mon Sep 17 00:00:00 2001 From: radmosley <34037881+radmosley@users.noreply.github.com> Date: Tue, 25 Oct 2022 20:05:09 -0700 Subject: [PATCH 2/3] add api methods --- code/Ronnie/docker_django_vue/backend/api/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/Ronnie/docker_django_vue/backend/api/views.py b/code/Ronnie/docker_django_vue/backend/api/views.py index 8e46a876..1a3d5518 100644 --- a/code/Ronnie/docker_django_vue/backend/api/views.py +++ b/code/Ronnie/docker_django_vue/backend/api/views.py @@ -6,4 +6,4 @@ class ToDoViewSet(viewsets.ModelViewSet): queryset = ToDo.objects.all() serializer_class = ToDoSerializer # Api methods - http_method_names = ["get", "post", "head", "delete", "update"] \ No newline at end of file + http_method_names = ["get", "post", "head", "delete", "put"] \ No newline at end of file From 7da8b0046b4c3be941c7ceab2d93fa10d8e20e22 Mon Sep 17 00:00:00 2001 From: radmosley <34037881+radmosley@users.noreply.github.com> Date: Sun, 13 Nov 2022 11:32:56 -0800 Subject: [PATCH 3/3] django heroku deployment example --- .../backend/project/settings.py | 7 ++----- code/Ronnie/docker_django_vue/docker-compose.yml | 16 ++++++++-------- code/Ronnie/heroku | 1 + 3 files changed, 11 insertions(+), 13 deletions(-) create mode 160000 code/Ronnie/heroku diff --git a/code/Ronnie/docker_django_vue/backend/project/settings.py b/code/Ronnie/docker_django_vue/backend/project/settings.py index 63198b06..30a08908 100644 --- a/code/Ronnie/docker_django_vue/backend/project/settings.py +++ b/code/Ronnie/docker_django_vue/backend/project/settings.py @@ -38,12 +38,11 @@ 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', - 'corsheaders', + # 'corsheaders', 'api', ] MIDDLEWARE = [ - 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', @@ -131,6 +130,4 @@ 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.AllowAny', ] -} - -CORS_ORIGIN_ALLOW_ALL = True \ No newline at end of file +} \ No newline at end of file diff --git a/code/Ronnie/docker_django_vue/docker-compose.yml b/code/Ronnie/docker_django_vue/docker-compose.yml index e4ac931f..ffe98c22 100644 --- a/code/Ronnie/docker_django_vue/docker-compose.yml +++ b/code/Ronnie/docker_django_vue/docker-compose.yml @@ -2,14 +2,14 @@ version: '3.9' services: # Dockerfile - frontend: - build: . - volumes: - - './frontend/:/usr/src/app' - - '/app/node_modules' - ports: - - '8081:8080' - command: "sh -c 'yarn serve'" + # frontend: + # build: . + # volumes: + # - './frontend/:/usr/src/app' + # - '/app/node_modules' + # ports: + # - '8081:8080' + # command: "sh -c 'yarn serve'" # Official Image db: diff --git a/code/Ronnie/heroku b/code/Ronnie/heroku new file mode 160000 index 00000000..e82d3d24 --- /dev/null +++ b/code/Ronnie/heroku @@ -0,0 +1 @@ +Subproject commit e82d3d245c1dae60f648c4e9134a5296cd758dd4