From 0fa61e46732aee51dfa09fabf99cb0282fab128f Mon Sep 17 00:00:00 2001 From: kjg Date: Fri, 3 Jul 2020 23:35:46 +0900 Subject: [PATCH 01/38] [Django #2] tutorial 2 --- kjg/django/django.org | 2 ++ kjg/django/mysite/mysite/settings.py | 1 + kjg/django/mysite/polls/models.py | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/kjg/django/django.org b/kjg/django/django.org index 3234861..e59b705 100644 --- a/kjg/django/django.org +++ b/kjg/django/django.org @@ -11,3 +11,5 @@ It is used in some local place start from FC00::/7 L must be 1. Global ID is created randomly. + +*** django #2 diff --git a/kjg/django/mysite/mysite/settings.py b/kjg/django/mysite/mysite/settings.py index 6039908..99289c7 100644 --- a/kjg/django/mysite/mysite/settings.py +++ b/kjg/django/mysite/mysite/settings.py @@ -31,6 +31,7 @@ ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ + 'polls.apps.PollsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', diff --git a/kjg/django/mysite/polls/models.py b/kjg/django/mysite/polls/models.py index 71a8362..3ac06e4 100644 --- a/kjg/django/mysite/polls/models.py +++ b/kjg/django/mysite/polls/models.py @@ -1,3 +1,26 @@ +import datetime + from django.db import models +from django.utils import timezone # Create your models here. + + +class Question(models.Model): + question_text = models.CharField(max_length=200) + pub_date = models.DateTimeField('date published') + def __str__(self): + return self.question_text + + def was_published_recently(self): + return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + + +class Choice(models.Model): + question = models.ForeignKey(Question, on_delete=models.CASCADE) + choice_text = models.CharField(max_length=200) + votes = models.IntegerField(default=0) + def __str__(self): + return self.choice_text + + From 5c51e6e1e609b0575a09d0f14f4c2b009a2440d9 Mon Sep 17 00:00:00 2001 From: samuel Date: Fri, 3 Jul 2020 16:59:57 +0200 Subject: [PATCH 02/38] django tutorial-1&2 --- sami/django/mysite/db.sqlite3 | Bin 0 -> 143360 bytes sami/django/mysite/manage.py | 21 +++ sami/django/mysite/mysite/__init__.py | 0 sami/django/mysite/mysite/settings.py | 130 ++++++++++++++++++ sami/django/mysite/mysite/urls.py | 22 +++ sami/django/mysite/mysite/wsgi.py | 16 +++ sami/django/mysite/polls/__init__.py | 0 sami/django/mysite/polls/admin.py | 7 + sami/django/mysite/polls/apps.py | 5 + .../mysite/polls/migrations/0001_initial.py | 32 +++++ .../mysite/polls/migrations/__init__.py | 0 sami/django/mysite/polls/models.py | 40 ++++++ sami/django/mysite/polls/tests.py | 3 + sami/django/mysite/polls/urls.py | 7 + sami/django/mysite/polls/views.py | 17 +++ 15 files changed, 300 insertions(+) create mode 100644 sami/django/mysite/db.sqlite3 create mode 100755 sami/django/mysite/manage.py create mode 100644 sami/django/mysite/mysite/__init__.py create mode 100644 sami/django/mysite/mysite/settings.py create mode 100644 sami/django/mysite/mysite/urls.py create mode 100644 sami/django/mysite/mysite/wsgi.py create mode 100644 sami/django/mysite/polls/__init__.py create mode 100644 sami/django/mysite/polls/admin.py create mode 100644 sami/django/mysite/polls/apps.py create mode 100644 sami/django/mysite/polls/migrations/0001_initial.py create mode 100644 sami/django/mysite/polls/migrations/__init__.py create mode 100644 sami/django/mysite/polls/models.py create mode 100644 sami/django/mysite/polls/tests.py create mode 100644 sami/django/mysite/polls/urls.py create mode 100644 sami/django/mysite/polls/views.py diff --git a/sami/django/mysite/db.sqlite3 b/sami/django/mysite/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..93a0f5aa5bde94e9573c36b62db461ad169ceb24 GIT binary patch literal 143360 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 D0QDux literal 0 HcmV?d00001 diff --git a/sami/django/mysite/manage.py b/sami/django/mysite/manage.py new file mode 100755 index 0000000..577e446 --- /dev/null +++ b/sami/django/mysite/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/sami/django/mysite/mysite/__init__.py b/sami/django/mysite/mysite/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sami/django/mysite/mysite/settings.py b/sami/django/mysite/mysite/settings.py new file mode 100644 index 0000000..dd259dc --- /dev/null +++ b/sami/django/mysite/mysite/settings.py @@ -0,0 +1,130 @@ +""" +Django settings for mysite project. + +Generated by 'django-admin startproject' using Django 2.2.12. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/2.2/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'p+k-n&d40pt2yi@yyq1(u%+b!b4#yloa%1ct%#jibl41x9z1b@' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'mysite.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'mysite.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/2.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/2.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.2/howto/static-files/ + +STATIC_URL = '/static/' + +INSTALLED_APPS = [ + 'polls.apps.PollsConfig', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] diff --git a/sami/django/mysite/mysite/urls.py b/sami/django/mysite/mysite/urls.py new file mode 100644 index 0000000..cba3a35 --- /dev/null +++ b/sami/django/mysite/mysite/urls.py @@ -0,0 +1,22 @@ +"""mysite URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/2.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import include, path + +urlpatterns = [ + path('polls/', include('polls.urls')), + path('admin/', admin.site.urls), +] diff --git a/sami/django/mysite/mysite/wsgi.py b/sami/django/mysite/mysite/wsgi.py new file mode 100644 index 0000000..45e28c9 --- /dev/null +++ b/sami/django/mysite/mysite/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for mysite project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + +application = get_wsgi_application() diff --git a/sami/django/mysite/polls/__init__.py b/sami/django/mysite/polls/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sami/django/mysite/polls/admin.py b/sami/django/mysite/polls/admin.py new file mode 100644 index 0000000..3f3d36e --- /dev/null +++ b/sami/django/mysite/polls/admin.py @@ -0,0 +1,7 @@ +# Register your models here. + +from django.contrib import admin + +from .models import Question + +admin.site.register(Question) diff --git a/sami/django/mysite/polls/apps.py b/sami/django/mysite/polls/apps.py new file mode 100644 index 0000000..d0f109e --- /dev/null +++ b/sami/django/mysite/polls/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class PollsConfig(AppConfig): + name = 'polls' diff --git a/sami/django/mysite/polls/migrations/0001_initial.py b/sami/django/mysite/polls/migrations/0001_initial.py new file mode 100644 index 0000000..88946ea --- /dev/null +++ b/sami/django/mysite/polls/migrations/0001_initial.py @@ -0,0 +1,32 @@ +# Generated by Django 2.2.12 on 2020-07-03 14:26 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Question', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('question_text', models.CharField(max_length=200)), + ('pub_date', models.DateTimeField(verbose_name='date published')), + ], + ), + migrations.CreateModel( + name='Choice', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('choice_text', models.CharField(max_length=200)), + ('votes', models.IntegerField(default=0)), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='polls.Question')), + ], + ), + ] diff --git a/sami/django/mysite/polls/migrations/__init__.py b/sami/django/mysite/polls/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sami/django/mysite/polls/models.py b/sami/django/mysite/polls/models.py new file mode 100644 index 0000000..0570fbb --- /dev/null +++ b/sami/django/mysite/polls/models.py @@ -0,0 +1,40 @@ +from django.db import models + +# Create your models here. + +class Question(models.Model): + question_text = models.CharField(max_length=200) + pub_date = models.DateTimeField('date published') + + +class Choice(models.Model): + question = models.ForeignKey(Question, on_delete=models.CASCADE) + choice_text = models.CharField(max_length=200) + + votes = models.IntegerField(default=0) + + +from django.db import models + +class Question(models.Model): + # ... + def __str__(self): + return self.question_text + +class Choice(models.Model): + # ... + def __str__(self): + return self.choice_text + + + +import datetime + +from django.db import models +from django.utils import timezone + + +class Question(models.Model): + # ... + def was_published_recently(self): + return self.pub_date >= timezone.now() - datetime.timedelta(days=1) diff --git a/sami/django/mysite/polls/tests.py b/sami/django/mysite/polls/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/sami/django/mysite/polls/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/sami/django/mysite/polls/urls.py b/sami/django/mysite/polls/urls.py new file mode 100644 index 0000000..88a9cac --- /dev/null +++ b/sami/django/mysite/polls/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.index, name='index'), +] diff --git a/sami/django/mysite/polls/views.py b/sami/django/mysite/polls/views.py new file mode 100644 index 0000000..8531097 --- /dev/null +++ b/sami/django/mysite/polls/views.py @@ -0,0 +1,17 @@ +# from django.shortcuts import render + +# Create your views here. + +#from django.urls import path + +#from . import views + +#urlpatterns = [ + # path('', views.index, name='index'), +#] + +from django.http import HttpResponse + + +def index(request): + return HttpResponse("Hello, world. You're at the polls index.") From 7807c98459aa34b25c1a214995a305cc932db3b0 Mon Sep 17 00:00:00 2001 From: Youngjin Han Date: Sat, 4 Jul 2020 01:07:35 +0900 Subject: [PATCH 03/38] Learning Circle : django #1, #2 - Tutorial01, Tutorial02 --- youngjin.han/django/.gitignore | 1 + youngjin.han/django/django.org | 13 ++ youngjin.han/django/mysite/db.sqlite3 | Bin 0 -> 143360 bytes youngjin.han/django/mysite/manage.py | 22 ++++ youngjin.han/django/mysite/mysite/__init__.py | 0 .../django/mysite/mysite/__init__.pyc | Bin 0 -> 173 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 173 bytes .../__pycache__/settings.cpython-37.pyc | Bin 0 -> 2325 bytes .../mysite/__pycache__/urls.cpython-37.pyc | Bin 0 -> 1009 bytes .../mysite/__pycache__/wsgi.cpython-37.pyc | Bin 0 -> 575 bytes youngjin.han/django/mysite/mysite/settings.py | 123 ++++++++++++++++++ .../django/mysite/mysite/settings.pyc | Bin 0 -> 2629 bytes youngjin.han/django/mysite/mysite/urls.py | 31 +++++ youngjin.han/django/mysite/mysite/urls.pyc | Bin 0 -> 1080 bytes youngjin.han/django/mysite/mysite/wsgi.py | 16 +++ youngjin.han/django/mysite/polls/__init__.py | 0 youngjin.han/django/mysite/polls/__init__.pyc | Bin 0 -> 167 bytes .../polls/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 172 bytes .../polls/__pycache__/admin.cpython-37.pyc | Bin 0 -> 259 bytes .../polls/__pycache__/apps.cpython-37.pyc | Bin 0 -> 437 bytes .../polls/__pycache__/models.cpython-37.pyc | Bin 0 -> 1344 bytes .../polls/__pycache__/urls.cpython-37.pyc | Bin 0 -> 301 bytes .../polls/__pycache__/views.cpython-37.pyc | Bin 0 -> 465 bytes youngjin.han/django/mysite/polls/admin.py | 6 + youngjin.han/django/mysite/polls/admin.pyc | Bin 0 -> 288 bytes youngjin.han/django/mysite/polls/apps.py | 8 ++ youngjin.han/django/mysite/polls/apps.pyc | Bin 0 -> 538 bytes .../mysite/polls/migrations/0001_initial.py | 32 +++++ .../mysite/polls/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-37.pyc | Bin 0 -> 1017 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 178 bytes youngjin.han/django/mysite/polls/models.py | 26 ++++ youngjin.han/django/mysite/polls/models.pyc | Bin 0 -> 1824 bytes youngjin.han/django/mysite/polls/tests.py | 6 + youngjin.han/django/mysite/polls/urls.py | 7 + youngjin.han/django/mysite/polls/views.py | 11 ++ youngjin.han/learning-node02-2020.org | 36 +++++ 37 files changed, 338 insertions(+) create mode 100644 youngjin.han/django/.gitignore create mode 100644 youngjin.han/django/django.org create mode 100644 youngjin.han/django/mysite/db.sqlite3 create mode 100755 youngjin.han/django/mysite/manage.py create mode 100644 youngjin.han/django/mysite/mysite/__init__.py create mode 100644 youngjin.han/django/mysite/mysite/__init__.pyc create mode 100644 youngjin.han/django/mysite/mysite/__pycache__/__init__.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/mysite/__pycache__/settings.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/mysite/__pycache__/urls.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/mysite/__pycache__/wsgi.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/mysite/settings.py create mode 100644 youngjin.han/django/mysite/mysite/settings.pyc create mode 100644 youngjin.han/django/mysite/mysite/urls.py create mode 100644 youngjin.han/django/mysite/mysite/urls.pyc create mode 100644 youngjin.han/django/mysite/mysite/wsgi.py create mode 100644 youngjin.han/django/mysite/polls/__init__.py create mode 100644 youngjin.han/django/mysite/polls/__init__.pyc create mode 100644 youngjin.han/django/mysite/polls/__pycache__/__init__.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/polls/__pycache__/admin.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/polls/__pycache__/apps.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/polls/__pycache__/models.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/polls/__pycache__/urls.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/polls/__pycache__/views.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/polls/admin.py create mode 100644 youngjin.han/django/mysite/polls/admin.pyc create mode 100644 youngjin.han/django/mysite/polls/apps.py create mode 100644 youngjin.han/django/mysite/polls/apps.pyc create mode 100644 youngjin.han/django/mysite/polls/migrations/0001_initial.py create mode 100644 youngjin.han/django/mysite/polls/migrations/__init__.py create mode 100644 youngjin.han/django/mysite/polls/migrations/__pycache__/0001_initial.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/polls/migrations/__pycache__/__init__.cpython-37.pyc create mode 100644 youngjin.han/django/mysite/polls/models.py create mode 100644 youngjin.han/django/mysite/polls/models.pyc create mode 100644 youngjin.han/django/mysite/polls/tests.py create mode 100644 youngjin.han/django/mysite/polls/urls.py create mode 100644 youngjin.han/django/mysite/polls/views.py diff --git a/youngjin.han/django/.gitignore b/youngjin.han/django/.gitignore new file mode 100644 index 0000000..09dd1da --- /dev/null +++ b/youngjin.han/django/.gitignore @@ -0,0 +1 @@ +venv/* diff --git a/youngjin.han/django/django.org b/youngjin.han/django/django.org new file mode 100644 index 0000000..2b11edd --- /dev/null +++ b/youngjin.han/django/django.org @@ -0,0 +1,13 @@ +* 2020-07-04 +** note + - none +* 2020-06-28 +** note + - Research and answer the following questions: (1/2 of the time) + - What is IPv6 ULA? + : unique local address + : prefix is fc00::/7 + - Which registries did exist historically? + : RIR, LIR, NIR, AFRINIC, APNIC, ARIN, LACNIC, RIPE NCC + - How should an IPv6 ULA registry work? + :I do not have a idea. diff --git a/youngjin.han/django/mysite/db.sqlite3 b/youngjin.han/django/mysite/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..059e514a489eb744fdaa0cf81c053c2021175250 GIT binary patch literal 143360 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 literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/manage.py b/youngjin.han/django/mysite/manage.py new file mode 100755 index 0000000..afbc784 --- /dev/null +++ b/youngjin.han/django/mysite/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +import os +import sys + +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") + try: + from django.core.management import execute_from_command_line + except ImportError: + # The above import may fail for some other reason. Ensure that the + # issue is really that Django is missing to avoid masking other + # exceptions on Python 2. + try: + import django + except ImportError: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) + raise + execute_from_command_line(sys.argv) diff --git a/youngjin.han/django/mysite/mysite/__init__.py b/youngjin.han/django/mysite/mysite/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/youngjin.han/django/mysite/mysite/__init__.pyc b/youngjin.han/django/mysite/mysite/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49b363aaaf07bcb44e5fe419c6788da453199883 GIT binary patch literal 173 zcmZSn%*)lT^gk|{0SXv_v;zg`kf_A0-qN-jYF literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/mysite/__pycache__/settings.cpython-37.pyc b/youngjin.han/django/mysite/mysite/__pycache__/settings.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e60958a6557621a73f7025baa8a06a4e513591f6 GIT binary patch literal 2325 zcmb7FTXWk)6!t~29p}SGKhbhA!+R@+CZOz`2RI%DOT+8DrW{kKN<-4BGJ3~qs<_Esl$0ies#Y603-(VQ=CqsS{B`#YA za)`@QX83Guxyc63@I{iKuju5QWi(}tcUq-VB5S+DC52E`H~D5K_pCk{*7S= znEtO|KJHFM`WyNn)eLvocGxYO`o?3j5!k!F)!Q$*L!@t$hyD9+>^IH^wR=Nm=`ZPi zICy;TbmP7nuKv7ZY#V#{ky+j=?`-ew?LPV?yfN@>n+nEYK!tWZt$1#iSmD}e`GV=W z%qJ&8QtWVbRvNHgczZ?|yI_~G;Q-TceMU(!rBM8f3I`O11s=C%Js5148E+B|x5he$ zAY|iH!^Z-}X5bSx6qNC#ai$9&&O(iY3se5eNH*nFx)=m@-|<|blDz)Il=@wv0>cY} zPp3@3p2@|4(oN?f!8cTmm`QU^InFL(QmAR?#;ABxUXMSp2%DI%`iA)mC?fp$)HfX5 z8pKSXQ+^90?g@c!(@-3PFzgI$pr3F8-q=MGatPIgiRxHQwUuP=e`Pw*#)O7*>cwY$N8x zi;;!rhfgkx)F3W#0;i5$i}lX^zrU>ih$8KAj^_aTmj!4B4)%$85n&FyTLIOw9kmh` zL^$?=D`M$pl-G4QuXR1jcr@Y$2J1ofiSI&tM|tCfCX#}#$0vxcYlQhQQii%u0 zl2!e={8Kbnl@B_H(UMfJw~pni{;Z{_O0-;SDk_LT0DG@Q#YU}Kt;@&KksK`^wOXp) zIjUD$&8N}4DmU77NtKo8>alWIi|y;RiWIj=#PvPmM)OrkmEzz^bW`f6&-AvWD95d% zs{TT%*Ff2V9$TtQ&BKm#DC?D0RR-8vL)Ntxv_+u~dAk|qVwtMJN>qqc ziL?1V<==(YNrv}7h&|82V&CX`V&GafCT4HT#)j|05wK+v-?Xtf^gz`ouFx~wG2z8g zTTfn-KRRJBj0)d59tv#yWC5a36$UO-$ll3wSuUH)XVT|)jys=c(zz@*`p!(G%Q-Hw QUn}Oa@m(x%nemY?pYGVc_Ln(UZ|4lKn+LK)lZ)9ZVT zbnyH+IMG|8QuRbK{|;4ObnYx8SS6e{VeA zBBgfe-5e+XU^-V>Q8A&`KtvPKra5LM356Z1w60IxfE%l)8Z0-^9(? znB5E-UGhG8P!E?&XrtwF@$fHbXT-IEo<{XS`{viN`>jT)k*8Yl& zpSouIbwPZY$%d{psnojQBFm@H$wmRY(@dDG;AE%a*G8x`r;6-@ku6tSvY)5!@R8DT ZSC5`c&8mXGcm!eW2(~Cb3?BCmgFk4QJsSW3 literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/mysite/__pycache__/wsgi.cpython-37.pyc b/youngjin.han/django/mysite/mysite/__pycache__/wsgi.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e24142c3d6c631712e0eadffb23dacf01044500 GIT binary patch literal 575 zcmYk3&5qMB5XT+2yR8BX91v%VTO~H8SA-CtU8*AJN^}uY52PlZB#s_ufu{9fHHZjA)$sd~9Ll2~6nBF!WOXd*l1z@Tf5jh`vpLJG$yLE}>sY<>DgbMo ztso0Y9M1!T&yDrqStx<^_l4HtlLjU{6Rfs!qv2G;7Bt%mr}iNuYLINb7EPm7CW5kN zy~cd6I*4_^ltEs-4=`&mx$-Pm8XhqZ5SJk|{t4&OWD!C5_ixUx z@Akh>JcOW3;U}YZl%^;lOKb_8atoHcEX4<+PcqeFY^2Jk0w zT@Ux}?>iJ-1FuAG`Nk9)R90f~gfoad&6LYD@SVj_rA$%^!+R>CgyUBpw_)jU3YI1FEb$+h_D*bSF~t zm0!}|*dIXmPL}OXJkyCKpZ0F|d3JBLdn*02R{8t>=eIsge#`jW!9U+C01yBN#{!Td z1O;#kKnpM|!mxBoSOR(uJ{2anQwCB3XBp@UIIGY{o(hm9Am@OfY8l81kX0ZR=r4nF z9thqSfUE)e0?0)mmw;SWDqOq*&KfYpUInraRpcVqpo+xgI#e0Pb_2*wAh&?rhCZ6z zfhzeD?J!;>y9>@mKr2=R@)eM;5t(h_5>SjpgHNc~K*%>xbuLRwa!)Nt>HbuDFqOVl z5;}6O0C@-wMzsmfy4vYAHC|UEM)e3B46F$D=3|*r12bBw551@#Yn%$fqCVGpaiWD| z&IHv)Nj#*!&?}W)8qvfPlxW?t_K+yZmPbMsXm4QjR3rgmYWp-qxS~g!osI zG)}0-BIFM}!Qx26TMQU_WC8si1E7_G5F`GxVUXD8dgdjM!H+|OMuwy`L_A_XH}a5; zj9(0>)=Psx3m6w#+?#F5iwJt6EYUuAK}z|VoF%k3=ZSsBUyDD*^ob`Qd)vOdQDqxx z@GR*Mb{<7z;yz)|hYvmkAHoeD4924GzU4a~N7Z{L8xQz(gpJ}L;JP;&as5DwwK(dr zK3_*wwqxCoBayJKuJX&TE>NUm!0()1mp~c`F&o0tHcXwdn6l#&q2>4H0w$|O#;r18I_>nD8Sy-yU0N!l6Q`tbzx_s z=0cvNFU{I(t5p|EDAyZ@wpc;IJUDRWgl{fjRYmoeaIq16+)bXAuk2ut}r77|bYsJp)D7 zVF!~)XB<0c;Ao{GO_+b0Le)@GLpLW z@@QAAp=36j?PII%?zQcXExy2&M$7KtDz0Ih*otPqQLi_xWAo4w7trFc-R`(Yhs|2M z^-8SbLdV)aXqp|%7ME~#Z0|NCw%Mqevi_9oVay_BTQ@tVjL{Z1(bhcb?70V~Z6CJ} z>+Tz~*+6|8+f>HZG+Vnz=C0+|+I1^))Y!LNr`@vDR*!I}jqM*>(@AstNlR6%)O4II z1sx2cCd1uCN|+7&H=G)SIHbnV>%~SI^#jWM!B#-MB*L?4%V&unP-7gUYRDpe;6+AO z+(y<-`6K@@>!Y!X<(DufX+U4dLyZ54L%DdN^mw^kDi_P;Qn6IXuhpeolF!vrxl}4F bt1Gu!FCzkV%Z0nEI3hOxudN_kc9s7Hu0sW7 literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/mysite/urls.py b/youngjin.han/django/mysite/mysite/urls.py new file mode 100644 index 0000000..7ae405d --- /dev/null +++ b/youngjin.han/django/mysite/mysite/urls.py @@ -0,0 +1,31 @@ +"""mysite URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/1.11/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.conf.urls import url, include + 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) +""" +""" +from django.conf.urls import url +from django.contrib import admin + +urlpatterns = [ + url(r'^admin/', admin.site.urls), +] +""" + +from django.contrib import admin +from django.urls import include, path + +urlpatterns = [ + path('polls/', include('polls.urls')), + path('admin/', admin.site.urls), + ] diff --git a/youngjin.han/django/mysite/mysite/urls.pyc b/youngjin.han/django/mysite/mysite/urls.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2aa9842bdd65054da17516077270332a4e14ebe9 GIT binary patch literal 1080 zcma)5OK%e~5T4DeWf2c?;A{z`Y@~LraEt(fDk>@=4goGXG~KS9tfRHPvb}+v`_(DL1wuQ4}q5BGmOY^bCoDtW9`N9Z$RMg9-w zLmqkImjshd{^4|C%DNTGtg#R=BBfViN4pwb#Nsd{gFPZ!nN8U0P|n%DWc!|AGt4Td z%6D8*KIyz3&iT5wYmRm7!i`B0amSNMs%~**3C>{{;#LT)Oojsq;Rv^bPoVdJ16cVH z3AV;*@M$MTtauZ>`Pb|bUPb@q5{GQL3{O#UmsN1;dX5?hkMH!9=$v@WV|0p0Pa=k< zyJ(9-_YN{NfV<5TAg9UTn_^{oYu2??Wp#?f?+iBNv{bIFCEr=R+9;D(h2eWnd@IeC i@1J0IP{_R51$v=xwH0kG-#S( literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/mysite/wsgi.py b/youngjin.han/django/mysite/mysite/wsgi.py new file mode 100644 index 0000000..74e7dae --- /dev/null +++ b/youngjin.han/django/mysite/mysite/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for mysite project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") + +application = get_wsgi_application() diff --git a/youngjin.han/django/mysite/polls/__init__.py b/youngjin.han/django/mysite/polls/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/youngjin.han/django/mysite/polls/__init__.pyc b/youngjin.han/django/mysite/polls/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6c1773347f4227d173d7167274a83174f68473f GIT binary patch literal 167 zcmZSn%*(Y?>3>`@0~9aG}G(mBpDQsrm)^ lIXT7p@$s2?nI-Y@dIgmw96&>Da`RJ4b5iXg`kf}KkL<3RLd5CH>>K!yVl7qb9~6oz01O-8?!3`HPe1o10WKO;XkRX-~+ zEnmMhFFhwUGdV*yCpEDsFEcM)H#xH?IVV-WG9M_Fm6@lPk(j5Sl9ia3p08h)npdWu sTUnf0lB!>jpOaIpA0MBYmst`YuUAlci^C>2KczG$)edCcXCP((0Jt130RR91 literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/polls/__pycache__/admin.cpython-37.pyc b/youngjin.han/django/mysite/polls/__pycache__/admin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c4feb4fe80336652da8763782de7bf15466a7cd7 GIT binary patch literal 259 zcmXv|J5Izf5VezC39VSf0jTIwYibX`k6JWFWO)Y zUv4ux9gLOWCL0wb>aCUW4xgIUvXSzXryQ-6v6y!^W>naRRtKD-dyO?U-&tG}UEups z48dD5s#6ddd$3LqJFqIE!+xh-)L_LNXf!%(2ZiF#QTRF02jUz6lDIt3p6BIi?}N!; LAIkMq;JW$+32;Vk literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/polls/__pycache__/apps.cpython-37.pyc b/youngjin.han/django/mysite/polls/__pycache__/apps.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ad851ae9018f367f6b19b7e334c0c21907315f41 GIT binary patch literal 437 zcmYLGOHRWu5VhkJ(x22bu!}_N3m{Zr!L9;z=LMD(yQwS34t7(iYd8aU;0RnLTUK0w z4U7{iMw*#7o{!(yx6|nefqY#2JiUScjKN7#087wt2}UA`4XQB1IO4=46=4LUdnAcW zUy)1|c_A#7gEh*}zMuo;xScgt7fvc}^j>*k0-OzR>iW*vjV_B=brK9<2^wZ#6k=E+ zmPpKqOkg5u#}Ce!&^NL{9fMV#wi)MEREqO<#ChdpVF7b(1Fen$)}b8-D(X5c z>Z6aZbsqUAU^3jrt9-zK)~4Av9%%WPYRCPkMQrp0PP)>6ay^RQ(q>ovM%S@1#2Y5b Gg!}?$&23fy literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/polls/__pycache__/models.cpython-37.pyc b/youngjin.han/django/mysite/polls/__pycache__/models.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b59588a08095b5fd1cae257fcb8f5df97e9e69b9 GIT binary patch literal 1344 zcmZ`(O>fjN5Vey{;%u`}$~QuS8`?v=66XpETR;f05`t3>m=L?WS)8P`9m-bR;L3j} zNB#-FAy-cQ1xQ?ACdsY}DwaH%JbTB_Z(jD{V9+Np?%(a*R8~|k|kTRR)@~A9iiu;$tg=7b&xeGy(mbWMPJ0 z%|Ho`l4$fu?H1)>&F~$2Q->I#T{am~9m0m@!fjZ?{Z|eX!&hQ*EmK)owb+2QCG%S= z=4bDn4Er_Xyhw7%dEMt6gs2qe5$6Y0qS_UWzNo|TEYXiMsf1?uKG+4SuYhEWod--u z7%pPK?wkt9Sff+}mE|lQExi9D!Ck`NE!VxaGGK9R3 zeuR9j^JCQc(I3ysER~>oSQZ@Qlpr@+3`7m!p}U?0LhdD%vVXPqzn)x6o2s27&+1O2 z#C14e*@|;5k)?$u!-2kp=U>Kf1w$ip|8c2hHZ7jXMI%fdj32xlKiGW~v*mZ7uj1~T z5bEe@VdYe|U8%kIrIn`b!CCSn9Xzg+e;pbSQH?0r0Ghv7*-At6HTu2|+Ye<+ylt52 v3kXIXSlLXO*0$br{8MSjHnmPQy&=(fm2J1qx`(9=x+HQUmpQ<|-C%zJ5lc3O literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/polls/__pycache__/urls.cpython-37.pyc b/youngjin.han/django/mysite/polls/__pycache__/urls.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d00d0858191899700c0d0723ce2eb288fb4b0f65 GIT binary patch literal 301 zcmXv|OHRZv3{9H0jF_2IuC2gTw_8bI>6J^V4uD}Ky zMp*K*t!MkayZ!!}V0_;EJiTH4O2dB?*qks!jUb7nni$$pN@OOP&J1f9B|v2kY{+FH z%Xik%rjS>Uq}rVEhEz1>qnP?Ly$r>o;3Y&73uPs|CfW)E_f;9UauBw2_3U-<8Ls;z z@ACvDLfj&Qzb5cDd=Q^(|H1bI@0|fYh-b%V+i6g3f6ySjRkk~{%C{Q$>W~_gt$Shl lMT#$A7jD*|Cg7vfI`AZ3k89lA8YgEB$K*RC54&u~egT@wPmurs literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/polls/__pycache__/views.cpython-37.pyc b/youngjin.han/django/mysite/polls/__pycache__/views.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e1f4a9ebc64812d7a815c19f1d8808da04fc7890 GIT binary patch literal 465 zcmYjNOHRWu5Veygtx7BP2oW2oL}Lzs5Q0rtU6d7B5JmB{N#)qZpO&(P%W$QL9V@QD z2F3v-M)LT1#`E5@ugBvd!FW6Vx(_KK@BZ)?0fH-B<{T3zoC?y=j8cyS5j0_jBZx!M zYoaVd+~d&;$zmSgl4<_~r^uAH6DR9ZamYn&K^MYcE!H48XhfsAwc90_t&#>xw9tj$ zz5ER>Gr(j~{+S|euy{J1gAnR0*()u0n%pUOq9G}4Vk=0tN(htG$o`m4sqWz{s`NEH zI575==ol-XOIE1{*rr%1=HyyHT~;#zg_gBk&&pbt0@y)eYg5a#DkS5ZLar6tf!wj? zVDKrdlVZCX_9opP+Ncxt-)X#cLbW%(nD*OYp0AvB8uDEGRyO%zOHHM;EuA$w#BzJ| iTdwd+I_Dij=lEah`>TVCMsX+L((@Vrrcp2oN8vZUs&&!; literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/polls/admin.py b/youngjin.han/django/mysite/polls/admin.py new file mode 100644 index 0000000..13be29d --- /dev/null +++ b/youngjin.han/django/mysite/polls/admin.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.contrib import admin + +# Register your models here. diff --git a/youngjin.han/django/mysite/polls/admin.pyc b/youngjin.han/django/mysite/polls/admin.pyc new file mode 100644 index 0000000000000000000000000000000000000000..03cda8a00f440007d07600656fa7700c283cbd53 GIT binary patch literal 288 zcmYL_O=<%%425M+3MJ5zGn6i7lko*g=>?iay33-*wVfFcvK{=hn4|SvJwPfafe7=g zk0(EbyT7OP@5}jH!>u^oAHX5MQe)^aKmgC+z<@R8fE;`WhmN>|uYN^??o8D)>dJKH{0BU-1YEn1a=3*%P1q|u5ck~O<9Oe%&lVw+uE>JON}SY{V@Gka$Qmxixi~G0n_|Mhq`{wXb!trptA0PsMi=x7hfdOb4kx1D=GT8rB#_t4mj@!stQu()c-Zftkmydv>}Bo5Xd9z+x!V{ed#i1;DRo~OB_@Zdy|(F2T2bw#ZJcN)k5h?2AY|A1w41UB8=m3s xNi5lGLXbzAdK|_cX)=6*F!tOjrQ(dn4do}ip#GgPEb4Av%{^gy+Ri#!^IuC0ep~gOr1>C=@z#0 z4Q%00_y%uT^%vN{buvSRgd^YFW5?(E96N6YgRVjC>$BeO7^Lj-zcErGcbG(%r|4hx3HD8frE*i#0Ex>1ubYVtqTqv8gsw~XUPb433Z_d zeT`xh21{PA9sYOi#y@K}3H4wLwri$)g!(v0hDj&cNH$>y?k_oUTADNF{uVqSeGip$ zvKDr(><@D+wMNAS94UT$=vt~D&Z{DbB!(4&>dmCcLb(V&;X*kjN)e{w237wG<)kPv z$iocP;BrM2RCrz8{vbHPXZvyo1uP7XtCRVMhqQX+LhQ9-N5zf;}+3WH*!&#B0WExaBvthRXP5)#k)Xny3aj3@_U1%i3Tf&Q z=YT9b()(7K`^R~OF|H=NM}t7p2sPQXu6wXD07j=yOEGlir%82sYK+X zX_$LW9WPsyqC&5>%DcPg-rnBci(n;uG+RjhBXy{kk15#P;+ADG&Ue_5?U?Iq$m;Lh xwsIQ!5lm{I8fzZ?9UL`((P%ADKGjNejXOd*V^Gyf40eN^A7|LDf0jT literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/polls/migrations/__pycache__/__init__.cpython-37.pyc b/youngjin.han/django/mysite/polls/migrations/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dc491d7e99579a283f0a82ab6d808b4229bdb30d GIT binary patch literal 178 zcmZ?b<>g`kf}KkL<3RLd5CH>>K!yVl7qb9~6oz01O-8?!3`HPe1o10cKO;XkRX-~+ zEnmMhFFhwUGdV*yCpEDsFEcM)H#xH?IVV-WG9M_Fm6@lPk(j5Sl9ia3p0A%= timezone.now() - datetime.timedelta(days=1) + +class Choice(models.Model): + question = models.ForeignKey(Question, on_delete=models.CASCADE) + choice_text = models.CharField(max_length=200) + votes = models.IntegerField(default=0) + def __str__(self): + return self.choice_text diff --git a/youngjin.han/django/mysite/polls/models.pyc b/youngjin.han/django/mysite/polls/models.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c3c7fd53ad666503af8beac6cb26ec4039351c76 GIT binary patch literal 1824 zcmcgs&2G~`5T3R3*B@w93Dn+@IFL*02LJ&jr4mA|gv*5-Sh@Bj*|1(0@0vD<6XD@_ zA0D90tev!Q;1;Z8Jv+0>%=gVV8~(bt`QpjV#}t|;r1wh*zbb6pMDUC9dgH)BN#%NwpXr|2JG%-;&OU$H*^0_4zqsu~T8`bn3 zUd|oYB&Btwl+3sdXaTXRo$>nGACpnn?gY$;BjSOYOlqJe^H%JAY7?%I&Yd}~JxeGf z!>mc;z7RK(Ns2iO{T#p)SH5HH84FWlf`0{EVA)ow-^GxagYZo#dq z%`tP$sVujlBX-4(*a#dmJDe6O#gr`naOeD_oRV>OQqT{6JtGStXh7Je=~(uk2An;9 znrUQsrZ$1@0v@6*o*mBS=_!n)_9E$kv-$b)I?QmKRN5(W!b*Wm>c6IEiw}DYx3jZ; z$@u2&Q|hHSw#kn95{P$r@lxP>;-n~1P0U-I`yP0l!=v-z(eZ1qrRCtqJbm#4S{(n? z8{=?-wTK*x=u6?y`mFy!Ev$MjrBTZs>19_87)~SkapkI#B~Pxpr}Zs!m|b}2F?YoS tY5bK_+SX&wXioY1_JqWoYyFTs*U#!nea^R!WtRIvKim%bq95+}egpO)liUCR literal 0 HcmV?d00001 diff --git a/youngjin.han/django/mysite/polls/tests.py b/youngjin.han/django/mysite/polls/tests.py new file mode 100644 index 0000000..5982e6b --- /dev/null +++ b/youngjin.han/django/mysite/polls/tests.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.test import TestCase + +# Create your tests here. diff --git a/youngjin.han/django/mysite/polls/urls.py b/youngjin.han/django/mysite/polls/urls.py new file mode 100644 index 0000000..ee00c7d --- /dev/null +++ b/youngjin.han/django/mysite/polls/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.index, name='index'), + ] diff --git a/youngjin.han/django/mysite/polls/views.py b/youngjin.han/django/mysite/polls/views.py new file mode 100644 index 0000000..4a60b61 --- /dev/null +++ b/youngjin.han/django/mysite/polls/views.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.shortcuts import render + +# Create your views here. +from django.http import HttpResponse + + +def index(request): + return HttpResponse("Hello, world. You're at the polls index.") diff --git a/youngjin.han/learning-node02-2020.org b/youngjin.han/learning-node02-2020.org index 0f5c6aa..30c2b1d 100644 --- a/youngjin.han/learning-node02-2020.org +++ b/youngjin.han/learning-node02-2020.org @@ -1,3 +1,39 @@ +* 2020-07-04 +*** Django #2: Tutorial 2 +**** DONE Lecture content + CLOSED: [2020-07-04 토 01:03] + - Tutorial 2 of Django + - Environment like in Django 1 + - https://docs.djangoproject.com/en/3.0/intro/tutorial02/ + - If you have IPv6, allow others to acces your Django server + with: + - python manage.py runserver '[::]:8000' +* 2020-06-28 +*** Django #1: Introduction +**** Objective + - We will build a IPv6 ULA registry with Django in the + next lectures +**** DONE Lecture content + CLOSED: [2020-07-04 토 01:03] + - Create a new directory in your learning cirle repository named "django" + - Write down the answers to the following questions in django/django.org + - Research and answer the following questions: (1/2 of the time) + - What is IPv6 ULA? + - Which registries did exist historically? + - How should an IPv6 ULA registry work? + - Get started with Django + - Create a new python virtual env using `python3 -m venv` + - Create the venv in django/venv + - Create a file .gitignore in django/ + - Add 'venv/' (without the quotes to that file + - Use magit to verify that the venv is being ignored + - Add and commit the .gitignore file + - Inside this virtual env, install django using `pip` + - Go to https://www.djangoproject.com/ + - Finish tutorial 1: https://docs.djangoproject.com/en/3.0/intro/tutorial01/ + - Commit the django code to your repository + - Exclude '*.pyc' in the .gitignore + - Also exclude the sqlite database * 2020-06-17 *** Python #11: **** DONE Lecture content From ca8ca56b98263b2d0904b6b095fc54c7076af39d Mon Sep 17 00:00:00 2001 From: Jin-Guk Kwon Date: Fri, 3 Jul 2020 20:15:06 +0200 Subject: [PATCH 04/38] Add new file --- kjg/.emacs | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 kjg/.emacs diff --git a/kjg/.emacs b/kjg/.emacs new file mode 100644 index 0000000..fbab1bd --- /dev/null +++ b/kjg/.emacs @@ -0,0 +1,150 @@ +;; Added by Package.el. This must come before configurations of +;; installed packages. Don't delete this line. If you don't want it, +;; just comment it out by adding a semicolon to the start of the line. +;; You may delete these explanatory comments. +(require 'package) +(add-to-list 'package-archives + '("melpa" . "http://melpa.org/packages/") t) +(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t) +(package-initialize) + + + +(global-set-key (kbd "") (lambda () (interactive) (find-file (concat "~/ungleich-learning-circle/kjg/learning-"(system-name)"-"(format-time-string "%Y")".org")))) +(global-set-key (kbd "C-x g") 'magit-status) +(global-set-key (kbd "C-c a") 'org-agenda) +(global-set-key (kbd "") 'org-todo-list) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(epg-gpg-program "/usr/local/bin/gpg") + '(org-agenda-files + (quote + ("~/ungleich-learning-circle/kjg/todo.org" "~/learning.org"))) + '(package-selected-packages (quote (org org-gnome org-dp ## which-key magit))) + '(python-shell-interpreter "python3") + '(send-mail-function (quote sendmail-send-it))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) + +(require 'epa-file) + +(epa-file-enable) + +(setq elpy-rpc-virtualenv-path 'current) + +;(use-package elpy +; :ensure t +; :config +; (elpy-enable) +; (setq elpy-rpc-python-command "python3") +; (setq elpy-rpc-backend "jedi") +; (elpy-use-cpython (or (executable-find "python3") +; (executable-find "/usr/bin/python3") +; (executable-find "/usr/local/bin/python3") +; "python3")) + ;; (elpy-use-ipython) +; (setq python-shell-interpreter-args "--simple-prompt -i") +; (add-hook 'python-mode-hook (lambda () (setq indent-tabs-mode nil)))) + +;(use-package ein :ensure t) + +(setq elpy-rpc-python-command "python3") + +(defvar myPackages + '(better-defaults ;; Set up some better Emacs defaults + elpy ;; Emacs Lisp Python Environment + flycheck ;; On the fly syntax checking + py-autopep8 ;; Run autopep8 on save + blacken ;; Black formatting on save + ein ;; Emacs IPython Notebook + material-theme ;; Theme + ) +) + +(elpy-enable) + +;; Use IPython for REPL +;(setq python-shell-interpreter "jupyter" +; python-shell-interpreter-args "console --simple-prompt" +; python-shell-prompt-detect-failure-warning nil) +;(add-to-list 'python-shell-completion-native-disabled-interpreters +; "jupyter") +;; Enable Flycheck +(when (require 'flycheck nil t) + (setq elpy-modules (delq 'elpy-module-flymake elpy-modules)) + (add-hook 'elpy-mode-hook 'flycheck-mode)) + +;(setq mu4e-mu-binary "/usr/local/bin/mu") + +;(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu/mu4e") +;(require 'mu4e) + +;(setq +; mue4e-headers-skip-duplicates t +; mu4e-view-show-images t +; mu4e-view-show-addresses t +; mu4e-compose-format-flowed nil +; mu4e-date-format "%y/%m/%d" +; mu4e-headers-date-format "%Y/%m/%d" +; mu4e-change-filenames-when-moving t +; mu4e-attachments-dir "~/Downloads" + +; mu4e-maildir "~/Maildir/ungleich" ;; top-level Maildir + ;; note that these folders below must start with / + ;; the paths are relative to maildir root +; mu4e-refile-folder "/Archive" +; mu4e-sent-folder "/Sent" +; mu4e-drafts-folder "/Drafts" +; mu4e-trash-folder "/Trash" +; mu4e-reply-to-address "jinguk.kwon@ungleich.ch" +; user-mail-address "jinguk.kwon@ungleich.ch" +; user-full-name "kjg") + +;; this setting allows to re-sync and re-index mail +;; by pressing U +;(setq mu4e-get-mail-command "mbsync -a") + +;(setq mail-host-address "mail.ungleich.ch") + + +;(setq send-mail-function 'smtpmail-send-it +; message-send-mail-function 'smtpmail-send-it +; user-mail-address "jinguk.kwon@ungleich.ch" +; smtpmail-starttls-credentials '(("smtp.ungleich.ch" 587 nil nil)) +; smtpmail-auth-credentials "~/.authinfo.gpg" +; smtpmail-default-smtp-server "smtp.ungleich.ch" +; smtpmail-smtp-server "smtp.ungleich.ch" +; smtpmail-smtp-service 587 +; smtpmail-smtp-user "jinguk.kwon@ungleich.ch" +; smtpmail-debug-info t +; smtpmail-debug-verb t) + ;;starttls-extra-arguments nil + ;;starttls-gnutls-program (executable-find "gnutls-cli") + ;;smtpmail-warn-about-unknown-extensions t + ;;starttls-use-gnutls t) + +;(require 'smtpmail) + +;;store org-mode links to messages +;(require 'org-mu4e) + +;(define-key mu4e-headers-mode-map (kbd "C-c c") 'mu4e-org-store-and-capture) +;(define-key mu4e-view-mode-map (kbd "C-c c") 'mu4e-org-store-and-capture) + +(setq org-directory (expand-file-name "~/ungleich-learning-circle/kjg/")) +;;store link to message if in header view, not to header query +(setq org-mu4e-link-query-in-headers-mode nil) + +(setq org-capture-templates + '(("t" "todo" entry (file+headline (lambda() (concat "~/ungleich-learning-circle/kjg/todo-"(system-name)"-"(format-time-string "%Y")".org")) "Tasks") + "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n%a\n"))) + +(setq org-log-done 'time) \ No newline at end of file From 5fd4e6fbab0f42fb6eeb25e659363545c0a6a8b8 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 4 Jul 2020 05:35:20 +0900 Subject: [PATCH 05/38] [django #2] update admin.py --- kjg/django/mysite/mysite/settings.py | 2 +- kjg/django/mysite/polls/admin.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/kjg/django/mysite/mysite/settings.py b/kjg/django/mysite/mysite/settings.py index 99289c7..ee85ab2 100644 --- a/kjg/django/mysite/mysite/settings.py +++ b/kjg/django/mysite/mysite/settings.py @@ -25,7 +25,7 @@ SECRET_KEY = '2kbmvs@pcbxn)kt#p9$)45=h#i8_b7^^l&l57mbe4%e=+k91-d' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = [ "[2a0a:e5c1:151::12]" ] # Application definition diff --git a/kjg/django/mysite/polls/admin.py b/kjg/django/mysite/polls/admin.py index 8c38f3f..6af8ff6 100644 --- a/kjg/django/mysite/polls/admin.py +++ b/kjg/django/mysite/polls/admin.py @@ -1,3 +1,5 @@ from django.contrib import admin -# Register your models here. +from .models import Question + +admin.site.register(Question) From 1fc6af755302348e50e228d7e2dcd678278d5573 Mon Sep 17 00:00:00 2001 From: pedrolab <531310-pedrolab@users.noreply.gitlab.com> Date: Mon, 6 Jul 2020 17:03:14 +0200 Subject: [PATCH 06/38] add pedro and its django tutorial #1 #2 --- README.md | 1 + pedro/.gitignore | 2 + pedro/django-tutorial/mysite/manage.py | 21 +++ .../django-tutorial/mysite/mysite/__init__.py | 0 pedro/django-tutorial/mysite/mysite/asgi.py | 16 +++ .../django-tutorial/mysite/mysite/settings.py | 121 ++++++++++++++++++ pedro/django-tutorial/mysite/mysite/urls.py | 22 ++++ pedro/django-tutorial/mysite/mysite/wsgi.py | 16 +++ .../django-tutorial/mysite/polls/__init__.py | 0 pedro/django-tutorial/mysite/polls/admin.py | 7 + pedro/django-tutorial/mysite/polls/apps.py | 5 + .../mysite/polls/migrations/0001_initial.py | 32 +++++ .../mysite/polls/migrations/__init__.py | 0 pedro/django-tutorial/mysite/polls/models.py | 21 +++ pedro/django-tutorial/mysite/polls/tests.py | 3 + pedro/django-tutorial/mysite/polls/urls.py | 7 + pedro/django-tutorial/mysite/polls/views.py | 9 ++ 17 files changed, 283 insertions(+) create mode 100644 pedro/.gitignore create mode 100755 pedro/django-tutorial/mysite/manage.py create mode 100644 pedro/django-tutorial/mysite/mysite/__init__.py create mode 100644 pedro/django-tutorial/mysite/mysite/asgi.py create mode 100644 pedro/django-tutorial/mysite/mysite/settings.py create mode 100644 pedro/django-tutorial/mysite/mysite/urls.py create mode 100644 pedro/django-tutorial/mysite/mysite/wsgi.py create mode 100644 pedro/django-tutorial/mysite/polls/__init__.py create mode 100644 pedro/django-tutorial/mysite/polls/admin.py create mode 100644 pedro/django-tutorial/mysite/polls/apps.py create mode 100644 pedro/django-tutorial/mysite/polls/migrations/0001_initial.py create mode 100644 pedro/django-tutorial/mysite/polls/migrations/__init__.py create mode 100644 pedro/django-tutorial/mysite/polls/models.py create mode 100644 pedro/django-tutorial/mysite/polls/tests.py create mode 100644 pedro/django-tutorial/mysite/polls/urls.py create mode 100644 pedro/django-tutorial/mysite/polls/views.py diff --git a/README.md b/README.md index 5becb7a..9f124d8 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,4 @@ into the ungleich clearning circle. * [Jin-Guk](https://code.ungleich.ch/kjg/ungleich-learning-circle): git@code.ungleich.ch:kjg/ungleich-learning-circle.git * [Sami](https://code.ungleich.ch/samialazar/learning-cicle): git@code.ungleich.ch:samialazar/learning-cicle.git * [Youngjin](https://code.ungleich.ch/youngjin.han/ungleich-learning-circle): git@code.ungleich.ch:youngjin.han/ungleich-learning-circle.git +* [Pedro](https://code.ungleich.ch/pedro/ungleich-learning-circle): git@code.ungleich.ch:pedro/ungleich-learning-circle.git diff --git a/pedro/.gitignore b/pedro/.gitignore new file mode 100644 index 0000000..154d790 --- /dev/null +++ b/pedro/.gitignore @@ -0,0 +1,2 @@ +*pyc +django-tutorial/mysite/db.sqlite3 diff --git a/pedro/django-tutorial/mysite/manage.py b/pedro/django-tutorial/mysite/manage.py new file mode 100755 index 0000000..341863c --- /dev/null +++ b/pedro/django-tutorial/mysite/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/pedro/django-tutorial/mysite/mysite/__init__.py b/pedro/django-tutorial/mysite/mysite/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pedro/django-tutorial/mysite/mysite/asgi.py b/pedro/django-tutorial/mysite/mysite/asgi.py new file mode 100644 index 0000000..35d925e --- /dev/null +++ b/pedro/django-tutorial/mysite/mysite/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for mysite project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + +application = get_asgi_application() diff --git a/pedro/django-tutorial/mysite/mysite/settings.py b/pedro/django-tutorial/mysite/mysite/settings.py new file mode 100644 index 0000000..82ed813 --- /dev/null +++ b/pedro/django-tutorial/mysite/mysite/settings.py @@ -0,0 +1,121 @@ +""" +Django settings for mysite project. + +Generated by 'django-admin startproject' using Django 3.0.8. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.0/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '37jgpv28n1x!f3-48h)4ad99&jz-ek$@e6uf*an5uve6%7atqq' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'polls.apps.PollsConfig', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'mysite.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'mysite.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/3.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/3.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'Europe/Madrid' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/3.0/howto/static-files/ + +STATIC_URL = '/static/' diff --git a/pedro/django-tutorial/mysite/mysite/urls.py b/pedro/django-tutorial/mysite/mysite/urls.py new file mode 100644 index 0000000..a3db229 --- /dev/null +++ b/pedro/django-tutorial/mysite/mysite/urls.py @@ -0,0 +1,22 @@ +"""mysite URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/3.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import include, path + +urlpatterns = [ + path('polls/', include('polls.urls')), + path('admin/', admin.site.urls), +] diff --git a/pedro/django-tutorial/mysite/mysite/wsgi.py b/pedro/django-tutorial/mysite/mysite/wsgi.py new file mode 100644 index 0000000..dbe7bb5 --- /dev/null +++ b/pedro/django-tutorial/mysite/mysite/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for mysite project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + +application = get_wsgi_application() diff --git a/pedro/django-tutorial/mysite/polls/__init__.py b/pedro/django-tutorial/mysite/polls/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pedro/django-tutorial/mysite/polls/admin.py b/pedro/django-tutorial/mysite/polls/admin.py new file mode 100644 index 0000000..d0e6a57 --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin + +# Register your models here. + +from .models import Question + +admin.site.register(Question) diff --git a/pedro/django-tutorial/mysite/polls/apps.py b/pedro/django-tutorial/mysite/polls/apps.py new file mode 100644 index 0000000..d0f109e --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class PollsConfig(AppConfig): + name = 'polls' diff --git a/pedro/django-tutorial/mysite/polls/migrations/0001_initial.py b/pedro/django-tutorial/mysite/polls/migrations/0001_initial.py new file mode 100644 index 0000000..330bbb6 --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/migrations/0001_initial.py @@ -0,0 +1,32 @@ +# Generated by Django 3.0.8 on 2020-07-03 12:48 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Question', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('question_text', models.CharField(max_length=200)), + ('pub_date', models.DateTimeField(verbose_name='date published')), + ], + ), + migrations.CreateModel( + name='Choice', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('choice_text', models.CharField(max_length=200)), + ('votes', models.IntegerField(default=0)), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='polls.Question')), + ], + ), + ] diff --git a/pedro/django-tutorial/mysite/polls/migrations/__init__.py b/pedro/django-tutorial/mysite/polls/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pedro/django-tutorial/mysite/polls/models.py b/pedro/django-tutorial/mysite/polls/models.py new file mode 100644 index 0000000..bfd48bd --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/models.py @@ -0,0 +1,21 @@ +import datetime + +from django.db import models +from django.utils import timezone + +# Create your models here. + +class Question(models.Model): + question_text = models.CharField(max_length=200) + pub_date = models.DateTimeField('date published') + def __str__(self): + return self.question_text + def was_published_recently(self): + return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + +class Choice(models.Model): + question = models.ForeignKey(Question, on_delete=models.CASCADE) + choice_text = models.CharField(max_length=200) + votes = models.IntegerField(default=0) + def __str__(self): + return self.choice_text diff --git a/pedro/django-tutorial/mysite/polls/tests.py b/pedro/django-tutorial/mysite/polls/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/pedro/django-tutorial/mysite/polls/urls.py b/pedro/django-tutorial/mysite/polls/urls.py new file mode 100644 index 0000000..88a9cac --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.index, name='index'), +] diff --git a/pedro/django-tutorial/mysite/polls/views.py b/pedro/django-tutorial/mysite/polls/views.py new file mode 100644 index 0000000..6dcc115 --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/views.py @@ -0,0 +1,9 @@ +from django.shortcuts import render + +# Create your views here. + +from django.http import HttpResponse + + +def index(request): + return HttpResponse("Hello, world. You're at the polls index.") From 8216cadd15c6a2484e77e9d833c810dd34c8583f Mon Sep 17 00:00:00 2001 From: samuel Date: Fri, 10 Jul 2020 15:02:03 +0200 Subject: [PATCH 07/38] new-project created and polls --- sami/django/mysite2/db.sqlite3 | 0 sami/django/mysite2/manage.py | 21 +++ sami/django/mysite2/mysite2/__init__.py | 0 sami/django/mysite2/mysite2/settings.py | 120 ++++++++++++++++++ sami/django/mysite2/mysite2/urls.py | 21 +++ sami/django/mysite2/mysite2/wsgi.py | 16 +++ sami/django/mysite2/polls/__init__.py | 0 sami/django/mysite2/polls/admin.py | 3 + sami/django/mysite2/polls/apps.py | 5 + .../mysite2/polls/migrations/__init__.py | 0 sami/django/mysite2/polls/models.py | 3 + sami/django/mysite2/polls/tests.py | 3 + sami/django/mysite2/polls/views.py | 3 + 13 files changed, 195 insertions(+) create mode 100644 sami/django/mysite2/db.sqlite3 create mode 100755 sami/django/mysite2/manage.py create mode 100644 sami/django/mysite2/mysite2/__init__.py create mode 100644 sami/django/mysite2/mysite2/settings.py create mode 100644 sami/django/mysite2/mysite2/urls.py create mode 100644 sami/django/mysite2/mysite2/wsgi.py create mode 100644 sami/django/mysite2/polls/__init__.py create mode 100644 sami/django/mysite2/polls/admin.py create mode 100644 sami/django/mysite2/polls/apps.py create mode 100644 sami/django/mysite2/polls/migrations/__init__.py create mode 100644 sami/django/mysite2/polls/models.py create mode 100644 sami/django/mysite2/polls/tests.py create mode 100644 sami/django/mysite2/polls/views.py diff --git a/sami/django/mysite2/db.sqlite3 b/sami/django/mysite2/db.sqlite3 new file mode 100644 index 0000000..e69de29 diff --git a/sami/django/mysite2/manage.py b/sami/django/mysite2/manage.py new file mode 100755 index 0000000..f7bf114 --- /dev/null +++ b/sami/django/mysite2/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite2.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/sami/django/mysite2/mysite2/__init__.py b/sami/django/mysite2/mysite2/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sami/django/mysite2/mysite2/settings.py b/sami/django/mysite2/mysite2/settings.py new file mode 100644 index 0000000..9db30f1 --- /dev/null +++ b/sami/django/mysite2/mysite2/settings.py @@ -0,0 +1,120 @@ +""" +Django settings for mysite2 project. + +Generated by 'django-admin startproject' using Django 2.2.12. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/2.2/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'sb1cbc!m_esjnb381eh8!+(1$zi-%$h@ewu#3=cog+ls)d%)3z' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'mysite2.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'mysite2.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/2.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/2.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.2/howto/static-files/ + +STATIC_URL = '/static/' diff --git a/sami/django/mysite2/mysite2/urls.py b/sami/django/mysite2/mysite2/urls.py new file mode 100644 index 0000000..7ab8fd1 --- /dev/null +++ b/sami/django/mysite2/mysite2/urls.py @@ -0,0 +1,21 @@ +"""mysite2 URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/2.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path + +urlpatterns = [ + path('admin/', admin.site.urls), +] diff --git a/sami/django/mysite2/mysite2/wsgi.py b/sami/django/mysite2/mysite2/wsgi.py new file mode 100644 index 0000000..916825e --- /dev/null +++ b/sami/django/mysite2/mysite2/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for mysite2 project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite2.settings') + +application = get_wsgi_application() diff --git a/sami/django/mysite2/polls/__init__.py b/sami/django/mysite2/polls/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sami/django/mysite2/polls/admin.py b/sami/django/mysite2/polls/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/sami/django/mysite2/polls/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/sami/django/mysite2/polls/apps.py b/sami/django/mysite2/polls/apps.py new file mode 100644 index 0000000..d0f109e --- /dev/null +++ b/sami/django/mysite2/polls/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class PollsConfig(AppConfig): + name = 'polls' diff --git a/sami/django/mysite2/polls/migrations/__init__.py b/sami/django/mysite2/polls/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sami/django/mysite2/polls/models.py b/sami/django/mysite2/polls/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/sami/django/mysite2/polls/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/sami/django/mysite2/polls/tests.py b/sami/django/mysite2/polls/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/sami/django/mysite2/polls/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/sami/django/mysite2/polls/views.py b/sami/django/mysite2/polls/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/sami/django/mysite2/polls/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. From f270905d018499b67c57f17abedc9b19d344e228 Mon Sep 17 00:00:00 2001 From: kjg Date: Fri, 10 Jul 2020 22:41:45 +0900 Subject: [PATCH 08/38] [Django #5] Tutorial 4 --- kjg/django/mysite/mysite/settings.py | 4 +- kjg/django/mysite/mysite/urls.py | 5 +- kjg/django/mysite/polls/admin.py | 3 +- .../mysite/polls/migrations/0001_initial.py | 32 ++++++++++ .../mysite/polls/templates/polls/detail.html | 12 ++++ .../mysite/polls/templates/polls/index.html | 9 +++ .../mysite/polls/templates/polls/results.html | 9 +++ kjg/django/mysite/polls/urls.py | 6 +- kjg/django/mysite/polls/views.py | 60 ++++++++++++++++++- 9 files changed, 133 insertions(+), 7 deletions(-) create mode 100644 kjg/django/mysite/polls/migrations/0001_initial.py create mode 100644 kjg/django/mysite/polls/templates/polls/detail.html create mode 100644 kjg/django/mysite/polls/templates/polls/index.html create mode 100644 kjg/django/mysite/polls/templates/polls/results.html diff --git a/kjg/django/mysite/mysite/settings.py b/kjg/django/mysite/mysite/settings.py index ee85ab2..ec0bcd2 100644 --- a/kjg/django/mysite/mysite/settings.py +++ b/kjg/django/mysite/mysite/settings.py @@ -25,8 +25,8 @@ SECRET_KEY = '2kbmvs@pcbxn)kt#p9$)45=h#i8_b7^^l&l57mbe4%e=+k91-d' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = [ "[2a0a:e5c1:151::12]" ] - +ALLOWED_HOSTS = [ "[2a0a:e5c1:114::12]", "127.0.0.1", "[2a0a:e5c1:151::12]", "testjg.django.lab.ungleich.ch", "[2a0a:e5c1:114::17]" ] +#ALLOWED_HOSTS = [] # Application definition diff --git a/kjg/django/mysite/mysite/urls.py b/kjg/django/mysite/mysite/urls.py index 8a95eac..2f884d2 100644 --- a/kjg/django/mysite/mysite/urls.py +++ b/kjg/django/mysite/mysite/urls.py @@ -14,8 +14,11 @@ Including another URLconf 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 include, path + urlpatterns = [ + path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ] + diff --git a/kjg/django/mysite/polls/admin.py b/kjg/django/mysite/polls/admin.py index 6af8ff6..ffd3760 100644 --- a/kjg/django/mysite/polls/admin.py +++ b/kjg/django/mysite/polls/admin.py @@ -1,5 +1,6 @@ from django.contrib import admin -from .models import Question +from .models import Question, Choice admin.site.register(Question) +admin.site.register(Choice) diff --git a/kjg/django/mysite/polls/migrations/0001_initial.py b/kjg/django/mysite/polls/migrations/0001_initial.py new file mode 100644 index 0000000..f358828 --- /dev/null +++ b/kjg/django/mysite/polls/migrations/0001_initial.py @@ -0,0 +1,32 @@ +# Generated by Django 3.0.8 on 2020-07-06 15:51 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Question', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('question_text', models.CharField(max_length=200)), + ('pub_date', models.DateTimeField(verbose_name='date published')), + ], + ), + migrations.CreateModel( + name='Choice', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('choice_text', models.CharField(max_length=200)), + ('votes', models.IntegerField(default=0)), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='polls.Question')), + ], + ), + ] diff --git a/kjg/django/mysite/polls/templates/polls/detail.html b/kjg/django/mysite/polls/templates/polls/detail.html new file mode 100644 index 0000000..3e55544 --- /dev/null +++ b/kjg/django/mysite/polls/templates/polls/detail.html @@ -0,0 +1,12 @@ +

{{ question.question_text }}

+ +{% if error_message %}

{{ error_message }}

{% endif %} + +
+{% csrf_token %} +{% for choice in question.choice_set.all %} + +
+{% endfor %} + +
diff --git a/kjg/django/mysite/polls/templates/polls/index.html b/kjg/django/mysite/polls/templates/polls/index.html new file mode 100644 index 0000000..4560139 --- /dev/null +++ b/kjg/django/mysite/polls/templates/polls/index.html @@ -0,0 +1,9 @@ +{% if latest_question_list %} + +{% else %} +

No polls are available.

+{% endif %} diff --git a/kjg/django/mysite/polls/templates/polls/results.html b/kjg/django/mysite/polls/templates/polls/results.html new file mode 100644 index 0000000..3b2c74f --- /dev/null +++ b/kjg/django/mysite/polls/templates/polls/results.html @@ -0,0 +1,9 @@ +

{{ question.question_text }}

+ +
    +{% for choice in question.choice_set.all %} +
  • {{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}
  • +{% endfor %} +
+ +Vote again? diff --git a/kjg/django/mysite/polls/urls.py b/kjg/django/mysite/polls/urls.py index 88a9cac..eff2be0 100644 --- a/kjg/django/mysite/polls/urls.py +++ b/kjg/django/mysite/polls/urls.py @@ -2,6 +2,10 @@ from django.urls import path from . import views +app_name = 'polls' urlpatterns = [ - path('', views.index, name='index'), + path('', views.IndexView.as_view(), name='index'), + path('/', views.DetailView.as_view(), name='detail'), + path('/results/', views.ResultsView.as_view(), name='results'), + path('/vote/', views.vote, name='vote'), ] diff --git a/kjg/django/mysite/polls/views.py b/kjg/django/mysite/polls/views.py index 91ea44a..584507f 100644 --- a/kjg/django/mysite/polls/views.py +++ b/kjg/django/mysite/polls/views.py @@ -1,3 +1,59 @@ -from django.shortcuts import render +from django.http import HttpResponse, HttpResponseRedirect +#from django.http import Http404 +from django.template import loader +from django.shortcuts import get_object_or_404, render +from django.urls import reverse +from django.views import generic -# Create your views here. +from .models import Choice, Question + + +#def index(request): +# latest_question_list = Question.objects.order_by('-pub_date')[:5] +# context = {'latest_question_list': latest_question_list} +# return render(request, 'polls/index.html', context) +class IndexView(generic.ListView): + template_name = 'polls/index.html' + context_object_name = 'latest_question_list' + + def get_queryset(self): + """Return the last five published questions.""" + return Question.objects.order_by('-pub_date')[:5] + +#def detail(request, question_id): +# #return HttpResponse("You're looking at question %s." % question_id) +# question = get_object_or_404(Question, pk=question_id) +# return render(request, 'polls/detail.html', {'question': question}) +class DetailView(generic.DetailView): + model = Question + template_name = 'polls/detail.html' + + +#def results(request, question_id): +# #response = "You're looking at the results of question %s." +# #return HttpResponse(response % question_id) +# question = get_object_or_404(Question, pk=question_id) +# return render(request, 'polls/results.html', {'question': question}) +class ResultsView(generic.DetailView): + model = Question + template_name = 'polls/results.html' + + +def vote(request, question_id): + #return HttpResponse("You're voting on question %s." % question_id) + question = get_object_or_404(Question, pk=question_id) + try: + selected_choice = question.choice_set.get(pk=request.POST['choice']) + except (KeyError, Choice.DoesNotExist): + # Redisplay the question voting form. + return render(request, 'polls/detail.html', { + 'question': question, + 'error_message': "You didn't select a choice.", + }) + else: + selected_choice.votes += 1 + selected_choice.save() + # Always return an HttpResponseRedirect after successfully dealing + # with POST data. This prevents data from being posted twice if a + # user hits the Back button. + return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) From 8b9bf5030f2816a016ebe7cf02a17e1b74f6b389 Mon Sep 17 00:00:00 2001 From: pedrolab <531310-pedrolab@users.noreply.gitlab.com> Date: Mon, 13 Jul 2020 13:55:28 +0200 Subject: [PATCH 09/38] django tutorial #3 done --- .../django-tutorial/mysite/mysite/settings.py | 7 ++- .../mysite/polls/templates/polls/detail.html | 6 ++ .../mysite/polls/templates/polls/index.html | 13 +++++ pedro/django-tutorial/mysite/polls/urls.py | 11 +++- pedro/django-tutorial/mysite/polls/views.py | 57 ++++++++++++++++++- 5 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 pedro/django-tutorial/mysite/polls/templates/polls/detail.html create mode 100644 pedro/django-tutorial/mysite/polls/templates/polls/index.html diff --git a/pedro/django-tutorial/mysite/mysite/settings.py b/pedro/django-tutorial/mysite/mysite/settings.py index 82ed813..0e2091c 100644 --- a/pedro/django-tutorial/mysite/mysite/settings.py +++ b/pedro/django-tutorial/mysite/mysite/settings.py @@ -25,7 +25,12 @@ SECRET_KEY = '37jgpv28n1x!f3-48h)4ad99&jz-ek$@e6uf*an5uve6%7atqq' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = [ + +"localhost", +"2a0a-e5c1-011f-0000-0000-0000-0000-0001.has-a.name" + +] # Application definition diff --git a/pedro/django-tutorial/mysite/polls/templates/polls/detail.html b/pedro/django-tutorial/mysite/polls/templates/polls/detail.html new file mode 100644 index 0000000..975db2a --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/templates/polls/detail.html @@ -0,0 +1,6 @@ +

{{ question.question_text }}

+
    +{% for choice in question.choice_set.all %} +
  • {{ choice.choice_text }}
  • +{% endfor %} +
diff --git a/pedro/django-tutorial/mysite/polls/templates/polls/index.html b/pedro/django-tutorial/mysite/polls/templates/polls/index.html new file mode 100644 index 0000000..b1b7ea8 --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/templates/polls/index.html @@ -0,0 +1,13 @@ +{% if latest_question_list %} + +{% else %} +

No polls are available.

+{% endif %} diff --git a/pedro/django-tutorial/mysite/polls/urls.py b/pedro/django-tutorial/mysite/polls/urls.py index 88a9cac..3e302ea 100644 --- a/pedro/django-tutorial/mysite/polls/urls.py +++ b/pedro/django-tutorial/mysite/polls/urls.py @@ -2,6 +2,15 @@ from django.urls import path from . import views +# namespacing URLs +app_name = 'polls' urlpatterns = [ - path('', views.index, name='index'), + # ex: /polls/ + path('', views.index, name='index'), + # ex: /polls/5/ + path('/', views.detail, name='detail'), + # ex: /polls/5/results/ + path('/results/', views.results, name='results'), + # ex: /polls/5/vote/ + path('/vote/', views.vote, name='vote'), ] diff --git a/pedro/django-tutorial/mysite/polls/views.py b/pedro/django-tutorial/mysite/polls/views.py index 6dcc115..257fe14 100644 --- a/pedro/django-tutorial/mysite/polls/views.py +++ b/pedro/django-tutorial/mysite/polls/views.py @@ -1,9 +1,62 @@ -from django.shortcuts import render +from django.shortcuts import get_object_or_404, render # Create your views here. from django.http import HttpResponse +from django.template import loader +from .models import Question +from django.http import Http404 + +## simple index +#def index(request): +# return HttpResponse("Hello, world. You're at the polls index.") + +## meaningful index +#def index(request): +# latest_question_list = Question.objects.order_by('-pub_date')[:5] +# output = ', '.join([q.question_text for q in latest_question_list]) +# return HttpResponse(output) + +## meaningful and templated index +#def index(request): +# latest_question_list = Question.objects.order_by('-pub_date')[:5] +# template = loader.get_template('polls/index.html') +# context = { +# 'latest_question_list': latest_question_list, +# } +# return HttpResponse(template.render(context, request)) + +## meaningful, templated and easy to write index +## and then we no longer need to import loader and HttpResponse def index(request): - return HttpResponse("Hello, world. You're at the polls index.") + latest_question_list = Question.objects.order_by('-pub_date')[:5] + context = { + 'latest_question_list': latest_question_list, + } + return render(request, 'polls/index.html', context) + +## simple detail +#def detail(request, question_id): +# return HttpResponse("You're looking at question %s." % question_id) + +## meaningful detail +#def detail(request, question_id): +# try: +# question = Question.objects.get(pk=question_id) +# except Question.DoesNotExist: +# raise Http404("Question does not exist") +# return render(request, 'polls/detail.html', {'question': question}) + +## meaningful and easy to write detail +def detail(request, question_id): + question = get_object_or_404(Question, pk=question_id) + return render(request, 'polls/detail.html', {'question': question}) + +def results(request, question_id): + response = "You're looking at the results of question %s." + return HttpResponse(response % question_id) + +def vote(request, question_id): + return HttpResponse("You're voting on question %s." % question_id) From 0efde9e43c2e5455ed1e774bcc6efbe355efd2f8 Mon Sep 17 00:00:00 2001 From: pedrolab <531310-pedrolab@users.noreply.gitlab.com> Date: Mon, 13 Jul 2020 14:11:57 +0200 Subject: [PATCH 10/38] add choice in django admin --- pedro/django-tutorial/mysite/polls/admin.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pedro/django-tutorial/mysite/polls/admin.py b/pedro/django-tutorial/mysite/polls/admin.py index d0e6a57..abb84ab 100644 --- a/pedro/django-tutorial/mysite/polls/admin.py +++ b/pedro/django-tutorial/mysite/polls/admin.py @@ -4,4 +4,8 @@ from django.contrib import admin from .models import Question +from .models import Choice + admin.site.register(Question) + +admin.site.register(Choice) From 440a3722218982abebaee4ba7f236e841b42adae Mon Sep 17 00:00:00 2001 From: kjg Date: Mon, 13 Jul 2020 22:44:40 +0900 Subject: [PATCH 11/38] [Django #6] Tutorial 5 --- kjg/django/mysite/polls/models.py | 8 +- kjg/django/mysite/polls/tests.py | 129 +++++++++++++++++++++++++++++- kjg/django/mysite/polls/views.py | 19 ++++- 3 files changed, 149 insertions(+), 7 deletions(-) diff --git a/kjg/django/mysite/polls/models.py b/kjg/django/mysite/polls/models.py index 3ac06e4..a7c5580 100644 --- a/kjg/django/mysite/polls/models.py +++ b/kjg/django/mysite/polls/models.py @@ -13,7 +13,11 @@ class Question(models.Model): return self.question_text def was_published_recently(self): - return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + now = timezone.now() + return now - datetime.timedelta(days=1) <= self.pub_date <= now + #def was_published_recently(self): + #return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + class Choice(models.Model): @@ -22,5 +26,3 @@ class Choice(models.Model): votes = models.IntegerField(default=0) def __str__(self): return self.choice_text - - diff --git a/kjg/django/mysite/polls/tests.py b/kjg/django/mysite/polls/tests.py index 7ce503c..3604a06 100644 --- a/kjg/django/mysite/polls/tests.py +++ b/kjg/django/mysite/polls/tests.py @@ -1,3 +1,128 @@ -from django.test import TestCase +import datetime -# Create your tests here. +from django.test import TestCase +from django.utils import timezone +from django.urls import reverse + +from .models import Question + + +class QuestionModelTests(TestCase): + + def test_was_published_recently_with_future_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is in the future. + """ + time = timezone.now() + datetime.timedelta(days=30) + future_question = Question(pub_date=time) + self.assertIs(future_question.was_published_recently(), False) + + def test_was_published_recently_with_old_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is older than 1 day. + """ + time = timezone.now() - datetime.timedelta(days=1, seconds=1) + old_question = Question(pub_date=time) + self.assertIs(old_question.was_published_recently(), False) + + def test_was_published_recently_with_recent_question(self): + """ + was_published_recently() returns True for questions whose pub_date + is within the last day. + """ + time = timezone.now() - datetime.timedelta(hours=23, minutes=59, seconds=59) + recent_question = Question(pub_date=time) + self.assertIs(recent_question.was_published_recently(), True) + + + +def create_question(question_text, days): + """ + Create a question with the given `question_text` and published the + given number of `days` offset to now (negative for questions published + in the past, positive for questions that have yet to be published). + """ + time = timezone.now() + datetime.timedelta(days=days) + return Question.objects.create(question_text=question_text, pub_date=time) + + +class QuestionIndexViewTests(TestCase): + def test_no_questions(self): + """ + If no questions exist, an appropriate message is displayed. + """ + response = self.client.get(reverse('polls:index')) + self.assertEqual(response.status_code, 200) + self.assertContains(response, "No polls are available.") + self.assertQuerysetEqual(response.context['latest_question_list'], []) + + def test_past_question(self): + """ + Questions with a pub_date in the past are displayed on the + index page. + """ + create_question(question_text="Past question.", days=-30) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + [''] + ) + + def test_future_question(self): + """ + Questions with a pub_date in the future aren't displayed on + the index page. + """ + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse('polls:index')) + self.assertContains(response, "No polls are available.") + self.assertQuerysetEqual(response.context['latest_question_list'], []) + + def test_future_question_and_past_question(self): + """ + Even if both past and future questions exist, only past questions + are displayed. + """ + create_question(question_text="Past question.", days=-30) + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + [''] + ) + + def test_two_past_questions(self): + """ + The questions index page may display multiple questions. + """ + create_question(question_text="Past question 1.", days=-30) + create_question(question_text="Past question 2.", days=-5) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + ['', ''] + ) + + +class QuestionDetailViewTests(TestCase): + def test_future_question(self): + """ + The detail view of a question with a pub_date in the future + returns a 404 not found. + """ + future_question = create_question(question_text='Future question.', days=5) + url = reverse('polls:detail', args=(future_question.id,)) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + def test_past_question(self): + """ + The detail view of a question with a pub_date in the past + displays the question's text. + """ + past_question = create_question(question_text='Past Question.', days=-5) + url = reverse('polls:detail', args=(past_question.id,)) + response = self.client.get(url) + self.assertContains(response, past_question.question_text) diff --git a/kjg/django/mysite/polls/views.py b/kjg/django/mysite/polls/views.py index 584507f..68cf7b5 100644 --- a/kjg/django/mysite/polls/views.py +++ b/kjg/django/mysite/polls/views.py @@ -4,6 +4,7 @@ from django.template import loader from django.shortcuts import get_object_or_404, render from django.urls import reverse from django.views import generic +from django.utils import timezone from .models import Choice, Question @@ -17,8 +18,16 @@ class IndexView(generic.ListView): context_object_name = 'latest_question_list' def get_queryset(self): - """Return the last five published questions.""" - return Question.objects.order_by('-pub_date')[:5] + """ + Return the last five published questions (not including those set to be + published in the future). + """ + return Question.objects.filter( + pub_date__lte=timezone.now() + ).order_by('-pub_date')[:5] + + #"""Return the last five published questions.""" + #return Question.objects.order_by('-pub_date')[:5] #def detail(request, question_id): # #return HttpResponse("You're looking at question %s." % question_id) @@ -27,6 +36,12 @@ class IndexView(generic.ListView): class DetailView(generic.DetailView): model = Question template_name = 'polls/detail.html' + + def get_queryset(self): + """ + Excludes any questions that aren't published yet. + """ + return Question.objects.filter(pub_date__lte=timezone.now()) #def results(request, question_id): From 3c1672b7530eb04ce099661541c5c2099c563f93 Mon Sep 17 00:00:00 2001 From: samuel Date: Mon, 13 Jul 2020 17:12:39 +0200 Subject: [PATCH 12/38] step4 --- sami/django/mysite2/db.sqlite3 | Bin 0 -> 143360 bytes sami/django/mysite2/mysite2/settings.py | 7 ++- sami/django/mysite2/mysite2/urls.py | 4 +- sami/django/mysite2/polls/.#models.py | 1 + .../mysite2/polls/migrations/0001_initial.py | 32 +++++++++++ sami/django/mysite2/polls/models.py | 24 ++++++++ .../mysite2/polls/templates/polls/detail.html | 1 + .../mysite2/polls/templates/polls/index.html | 22 ++++++++ .../polls/templates/polls/results.html | 9 +++ sami/django/mysite2/polls/urls.py | 13 +++++ sami/django/mysite2/polls/views.py | 52 +++++++++++++++++- 11 files changed, 160 insertions(+), 5 deletions(-) create mode 120000 sami/django/mysite2/polls/.#models.py create mode 100644 sami/django/mysite2/polls/migrations/0001_initial.py create mode 100644 sami/django/mysite2/polls/templates/polls/detail.html create mode 100644 sami/django/mysite2/polls/templates/polls/index.html create mode 100644 sami/django/mysite2/polls/templates/polls/results.html create mode 100644 sami/django/mysite2/polls/urls.py diff --git a/sami/django/mysite2/db.sqlite3 b/sami/django/mysite2/db.sqlite3 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..95016afdcda3372d141ae70285e53f77a5419a45 100644 GIT binary patch literal 143360 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 timezone.now() -datetime.timedelta(days=1) + +class Choice(models.Model): + question = models.ForeignKey(Question, on_delete=models.CASCADE) + choice_text = models.CharField(max_length=200) + votes = models.IntegerField(default=0) + + def __str__(self): + return self.choice_text + + diff --git a/sami/django/mysite2/polls/templates/polls/detail.html b/sami/django/mysite2/polls/templates/polls/detail.html new file mode 100644 index 0000000..6667640 --- /dev/null +++ b/sami/django/mysite2/polls/templates/polls/detail.html @@ -0,0 +1 @@ +{{ question }} diff --git a/sami/django/mysite2/polls/templates/polls/index.html b/sami/django/mysite2/polls/templates/polls/index.html new file mode 100644 index 0000000..71c2249 --- /dev/null +++ b/sami/django/mysite2/polls/templates/polls/index.html @@ -0,0 +1,22 @@ +{% if latest_question_list %} + +{% else %} +

No polls are available.

+{% endif %} + +

{{ question.question_text }}

+ +{% if error_message %}

{{ error_message }}

{% endif %} + +
+{% csrf_token %} +{% for choice in question.choice_set.all %} + +
+{% endfor %} + +
diff --git a/sami/django/mysite2/polls/templates/polls/results.html b/sami/django/mysite2/polls/templates/polls/results.html new file mode 100644 index 0000000..3b2c74f --- /dev/null +++ b/sami/django/mysite2/polls/templates/polls/results.html @@ -0,0 +1,9 @@ +

{{ question.question_text }}

+ +
    +{% for choice in question.choice_set.all %} +
  • {{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}
  • +{% endfor %} +
+ +Vote again? diff --git a/sami/django/mysite2/polls/urls.py b/sami/django/mysite2/polls/urls.py new file mode 100644 index 0000000..0b66ce8 --- /dev/null +++ b/sami/django/mysite2/polls/urls.py @@ -0,0 +1,13 @@ +from django.urls import path +# Here is importing the views which I modified +from . import views +app_name = 'polls' +urlpatterns = [ + path('', views.index, name='index'), + # ex: /polls/5/ + path('/', views.detail, name='detail'), + # ex: /polls/5/results/ + path('/results/', views.results, name='results'), + # ex: /polls/5/vote/ + path('/vote/', views.vote, name='vote'), +] diff --git a/sami/django/mysite2/polls/views.py b/sami/django/mysite2/polls/views.py index 91ea44a..b018678 100644 --- a/sami/django/mysite2/polls/views.py +++ b/sami/django/mysite2/polls/views.py @@ -1,3 +1,53 @@ +# Here is the fist view add by Sami from Diesbach from django.shortcuts import render +from django.http import HttpResponse +from django.shortcuts import Http404 +from .models import Choice, Question +from django.template import loader +from django.shortcuts import get_object_or_404, render +from django.http import HttpResponse, HttpResponseRedirect +from django.urls import reverse +from django.views import generic + + + +class IndexView(generic.ListView): + template_name = 'polls/index.html' + context_object_name = 'latest_question_list' + + def get_queryset(self): + """Return the last five published questions.""" + return Question.objects.order_by('-pub_date')[:5] + + +class DetailView(generic.DetailView): + model = Question + template_name = 'polls/detail.html' + + +class ResultsView(generic.DetailView): + model = Question + template_name = 'polls/results.html' + + + + +def vote(request, question_id): + question = get_object_or_404(Question, pk=question_id) + try: + selected_choice = question.choice_set.get(pk=request.POST['choice']) + except (KeyError, Choice.DoesNotExist): + # Redisplay the question voting form. + return render(request, 'polls/detail.html', { + 'question': question, + 'error_message': "You didn't select a choice.", + }) + else: + selected_choice.votes += 1 + selected_choice.save() + # Always return an HttpResponseRedirect after successfully dealing + # with POST data. This prevents data from being posted twice if a + # user hits the Back button. + return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) + -# Create your views here. From 435eb4f35a76f19b0abd7cb5971f33f35fbc1f31 Mon Sep 17 00:00:00 2001 From: Youngjin Han Date: Tue, 14 Jul 2020 00:28:50 +0900 Subject: [PATCH 13/38] Learning Circle : django #3 - #6 - Tutorial03 - 06 --- youngjin.han/django/django.org | 12 ++ youngjin.han/django/mysite/db.sqlite3 | Bin 143360 -> 143360 bytes youngjin.han/django/mysite/mysite/settings.py | 6 +- youngjin.han/django/mysite/polls/admin.py | 3 + youngjin.han/django/mysite/polls/models.py | 4 +- .../polls/static/polls/images/background.jpg | Bin 0 -> 13672 bytes .../mysite/polls/static/polls/style.css | 7 + .../mysite/polls/templates/polls/detail.html | 12 ++ .../mysite/polls/templates/polls/index.html | 13 ++ .../mysite/polls/templates/polls/results.html | 9 ++ youngjin.han/django/mysite/polls/tests.py | 128 ++++++++++++++++++ youngjin.han/django/mysite/polls/urls.py | 16 ++- youngjin.han/django/mysite/polls/views.py | 106 ++++++++++++++- youngjin.han/learning-node02-2020.org | 85 ++++++++++++ 14 files changed, 394 insertions(+), 7 deletions(-) create mode 100644 youngjin.han/django/mysite/polls/static/polls/images/background.jpg create mode 100644 youngjin.han/django/mysite/polls/static/polls/style.css create mode 100644 youngjin.han/django/mysite/polls/templates/polls/detail.html create mode 100644 youngjin.han/django/mysite/polls/templates/polls/index.html create mode 100644 youngjin.han/django/mysite/polls/templates/polls/results.html diff --git a/youngjin.han/django/django.org b/youngjin.han/django/django.org index 2b11edd..1c79eb5 100644 --- a/youngjin.han/django/django.org +++ b/youngjin.han/django/django.org @@ -1,3 +1,15 @@ +* 2020-07-13 +** note + - none +* 2020-07-10 +** note + - none +* 2020-07-08 +** note + - none +* 2020-07-06 +** note + - none * 2020-07-04 ** note - none diff --git a/youngjin.han/django/mysite/db.sqlite3 b/youngjin.han/django/mysite/db.sqlite3 index 059e514a489eb744fdaa0cf81c053c2021175250..c1315a71c38fa673fd2a88827c8b0a00b5fc5613 100644 GIT binary patch delta 203 zcmZp8z|ru4V}dlJ=|mZ4M$?T6E8>~>4sC4Q#mB^Gx3STRaZ&*X6aSsff(cjo8C51W zDr{0o~enY zv4K(Zh56er%xAO+VB&uSH0m}#qufMCsVz*50=)bm8JPGlG4NmFf5d+ZD7T;ASdsw< u_!wCkWEnaA@=FwQOOrF$c$rukq!~FwGExRlpkSE-lK=qyr8I;9 delta 127 zcmV-_0D%91;0S==2#^~AB#|6L0VJ_ts9&=P;P@Z1fCdl*asUrGiRA^-&b8C4G0R;dZ2nkMabRcbYV`!!z0uZ@RCnf*@ diff --git a/youngjin.han/django/mysite/mysite/settings.py b/youngjin.han/django/mysite/mysite/settings.py index 5661f86..76cb072 100644 --- a/youngjin.han/django/mysite/mysite/settings.py +++ b/youngjin.han/django/mysite/mysite/settings.py @@ -27,6 +27,9 @@ DEBUG = True ALLOWED_HOSTS = [ "[2a0a:e5c1:120::35]", + "192.168.0.20", + "127.0.0.1", + "2a0a-e5c1-0120-0000-0000-0000-0000-0035.has-a.name", ] @@ -108,7 +111,8 @@ AUTH_PASSWORD_VALIDATORS = [ LANGUAGE_CODE = 'en-us' -TIME_ZONE = 'UTC' +#TIME_ZONE = 'UTC' +TIME_ZONE = 'Asia/Seoul' USE_I18N = True diff --git a/youngjin.han/django/mysite/polls/admin.py b/youngjin.han/django/mysite/polls/admin.py index 13be29d..a753d0f 100644 --- a/youngjin.han/django/mysite/polls/admin.py +++ b/youngjin.han/django/mysite/polls/admin.py @@ -4,3 +4,6 @@ from __future__ import unicode_literals from django.contrib import admin # Register your models here. +from .models import Question + +admin.site.register(Question) diff --git a/youngjin.han/django/mysite/polls/models.py b/youngjin.han/django/mysite/polls/models.py index 0383cd4..c6f43bd 100644 --- a/youngjin.han/django/mysite/polls/models.py +++ b/youngjin.han/django/mysite/polls/models.py @@ -16,7 +16,9 @@ class Question(models.Model): def __str__(self): return self.question_text def was_published_recently(self): - return self.pub_date >= timezone.now() - datetime.timedelta(days=1) +# return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + now = timezone.now() + return now - datetime.timedelta(days=1) <= self.pub_date <= now class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) diff --git a/youngjin.han/django/mysite/polls/static/polls/images/background.jpg b/youngjin.han/django/mysite/polls/static/polls/images/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0337b06760b4be988bfa39fd8500e299b4014552 GIT binary patch literal 13672 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 HKF{{ question.question_text }} + +{% if error_message %}

{{ error_message }}

{% endif %} + +
+{% csrf_token %} +{% for choice in question.choice_set.all %} + +
+{% endfor %} + +
diff --git a/youngjin.han/django/mysite/polls/templates/polls/index.html b/youngjin.han/django/mysite/polls/templates/polls/index.html new file mode 100644 index 0000000..366983e --- /dev/null +++ b/youngjin.han/django/mysite/polls/templates/polls/index.html @@ -0,0 +1,13 @@ +{% load static %} + + + +{% if latest_question_list %} + +{% else %} +

No polls are available.

+{% endif %} diff --git a/youngjin.han/django/mysite/polls/templates/polls/results.html b/youngjin.han/django/mysite/polls/templates/polls/results.html new file mode 100644 index 0000000..3faf8e4 --- /dev/null +++ b/youngjin.han/django/mysite/polls/templates/polls/results.html @@ -0,0 +1,9 @@ +

{{ question.question_text }}

+ +
    + {% for choice in question.choice_set.all %} +
  • {{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}
  • + {% endfor %} +
+ +Vote again? diff --git a/youngjin.han/django/mysite/polls/tests.py b/youngjin.han/django/mysite/polls/tests.py index 5982e6b..99dd7d0 100644 --- a/youngjin.han/django/mysite/polls/tests.py +++ b/youngjin.han/django/mysite/polls/tests.py @@ -4,3 +4,131 @@ from __future__ import unicode_literals from django.test import TestCase # Create your tests here. +import datetime + +from django.test import TestCase +from django.utils import timezone +from django.urls import reverse + +from .models import Question + + +class QuestionModelTests(TestCase): + + def test_was_published_recently_with_future_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is in the future. + """ + time = timezone.now() + datetime.timedelta(days=30) + future_question = Question(pub_date=time) + self.assertIs(future_question.was_published_recently(), False) + + + def test_was_published_recently_with_old_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is older than 1 day. + """ + time = timezone.now() - datetime.timedelta(days=1, seconds=1) + old_question = Question(pub_date=time) + self.assertIs(old_question.was_published_recently(), False) + + def test_was_published_recently_with_recent_question(self): + """ + was_published_recently() returns True for questions whose pub_date + is within the last day. + """ + time = timezone.now() - datetime.timedelta(hours=23, minutes=59, seconds=59) + recent_question = Question(pub_date=time) + self.assertIs(recent_question.was_published_recently(), True) + + +def create_question(question_text, days): + """ + Create a question with the given `question_text` and published the + given number of `days` offset to now (negative for questions published + in the past, positive for questions that have yet to be published). + """ + time = timezone.now() + datetime.timedelta(days=days) + return Question.objects.create(question_text=question_text, pub_date=time) + + +class QuestionIndexViewTests(TestCase): + def test_no_questions(self): + """ + If no questions exist, an appropriate message is displayed. + """ + response = self.client.get(reverse('polls:index')) + self.assertEqual(response.status_code, 200) + self.assertContains(response, "No polls are available.") + self.assertQuerysetEqual(response.context['latest_question_list'], []) + + def test_past_question(self): + """ + Questions with a pub_date in the past are displayed on the + index page. + """ + create_question(question_text="Past question.", days=-30) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + [''] + ) + + def test_future_question(self): + """ + Questions with a pub_date in the future aren't displayed on + the index page. + """ + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse('polls:index')) + self.assertContains(response, "No polls are available.") + self.assertQuerysetEqual(response.context['latest_question_list'], []) + + def test_future_question_and_past_question(self): + """ + Even if both past and future questions exist, only past questions + are displayed. + """ + create_question(question_text="Past question.", days=-30) + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + [''] + ) + + def test_two_past_questions(self): + """ + The questions index page may display multiple questions. + """ + create_question(question_text="Past question 1.", days=-30) + create_question(question_text="Past question 2.", days=-5) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + ['', ''] + ) + + +class QuestionDetailViewTests(TestCase): + def test_future_question(self): + """ + The detail view of a question with a pub_date in the future + returns a 404 not found. + """ + future_question = create_question(question_text='Future question.', days=5) + url = reverse('polls:detail', args=(future_question.id,)) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + def test_past_question(self): + """ + The detail view of a question with a pub_date in the past + displays the question's text. + """ + past_question = create_question(question_text='Past Question.', days=-5) + url = reverse('polls:detail', args=(past_question.id,)) + response = self.client.get(url) + self.assertContains(response, past_question.question_text) diff --git a/youngjin.han/django/mysite/polls/urls.py b/youngjin.han/django/mysite/polls/urls.py index ee00c7d..6eebdcb 100644 --- a/youngjin.han/django/mysite/polls/urls.py +++ b/youngjin.han/django/mysite/polls/urls.py @@ -2,6 +2,18 @@ from django.urls import path from . import views +app_name = 'polls' urlpatterns = [ - path('', views.index, name='index'), - ] + # ex: /polls/ + #path('', views.index, name='index'), + path('', views.IndexView.as_view(), name='index'), + # ex: /polls/5/ + #path('/', views.detail, name='detail'), + path('/', views.DetailView.as_view(), name='detail'), + # ex: /polls/5/results/ + #path('/results/', views.results, name='results'), + path('/results/', views.ResultsView.as_view(), name='results'), + # ex: /polls/5/vote/ + #path('/vote/', views.vote, name='vote'), + path('/vote/', views.vote, name='vote'), +] diff --git a/youngjin.han/django/mysite/polls/views.py b/youngjin.han/django/mysite/polls/views.py index 4a60b61..427bf61 100644 --- a/youngjin.han/django/mysite/polls/views.py +++ b/youngjin.han/django/mysite/polls/views.py @@ -4,8 +4,108 @@ from __future__ import unicode_literals from django.shortcuts import render # Create your views here. -from django.http import HttpResponse +from django.http import HttpResponse, HttpResponseRedirect +from django.template import loader +from django.http import Http404 +from django.shortcuts import get_object_or_404, render +from django.urls import reverse +from django.views import generic +from django.utils import timezone + +from .models import Choice, Question -def index(request): - return HttpResponse("Hello, world. You're at the polls index.") +#def index(request): +# return HttpResponse("Hello, world. You're at the polls index.") + +#def index(request): +# latest_question_list = Question.objects.order_by('-pub_date')[:5] +# output = ', '.join([q.question_text for q in latest_question_list]) +# return HttpResponse(output) + +#def index(request): +# latest_question_list = Question.objects.order_by('-pub_date')[:5] +# template = loader.get_template('polls/index.html') +# context = { +# 'latest_question_list': latest_question_list, +# } +# return HttpResponse(template.render(context, request)) + +#def index(request): +# latest_question_list = Question.objects.order_by('-pub_date')[:5] +# context = {'latest_question_list': latest_question_list} +# return render(request, 'polls/index.html', context) + +class IndexView(generic.ListView): + template_name = 'polls/index.html' + context_object_name = 'latest_question_list' + +# def get_queryset(self): +# """Return the last five published questions.""" +# return Question.objects.order_by('-pub_date')[:5] + + def get_queryset(self): + """ + Return the last five published questions (not including those set to be + published in the future). + """ + return Question.objects.filter( + pub_date__lte=timezone.now() + ).order_by('-pub_date')[:5] + +#def detail(request, question_id): +# return HttpResponse("You're looking at question %s." % question_id) + +#def detail(request, question_id): +# try: +# question = Question.objects.get(pk=question_id) +# except Question.DoesNotExist: +# raise Http404("Question does not exist") +# return render(request, 'polls/detail.html', {'question': question}) + +#def detail(request, question_id): +# question = get_object_or_404(Question, pk=question_id) +# return render(request, 'polls/detail.html', {'question': question}) + +class DetailView(generic.DetailView): + model = Question + template_name = 'polls/detail.html' + + def get_queryset(self): + """ + Excludes any questions that aren't published yet. + """ + return Question.objects.filter(pub_date__lte=timezone.now()) + +#def results(request, question_id): +# response = "You're looking at the results of question %s." +# return HttpResponse(response % question_id) + +#def results(request, question_id): +# question = get_object_or_404(Question, pk=question_id) +# return render(request, 'polls/results.html', {'question': question}) + +class ResultsView(generic.DetailView): + model = Question + template_name = 'polls/results.html' + +#def vote(request, question_id): +# return HttpResponse("You're voting on question %s." % question_id) + +def vote(request, question_id): + question = get_object_or_404(Question, pk=question_id) + try: + selected_choice = question.choice_set.get(pk=request.POST['choice']) + except (KeyError, Choice.DoesNotExist): + # Redisplay the question voting form. + return render(request, 'polls/detail.html', { + 'question': question, + 'error_message': "You didn't select a choice.", + }) + else: + selected_choice.votes += 1 + selected_choice.save() + # Always return an HttpResponseRedirect after successfully dealing + # with POST data. This prevents data from being posted twice if a + # user hits the Back button. + return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) diff --git a/youngjin.han/learning-node02-2020.org b/youngjin.han/learning-node02-2020.org index 30c2b1d..4c34b04 100644 --- a/youngjin.han/learning-node02-2020.org +++ b/youngjin.han/learning-node02-2020.org @@ -1,3 +1,88 @@ +* 2020-07-15 +*** Django #7: Tutorial 6 +**** Lecture content + - Environment like in Django 1 and Django 3 + - Ensure your nginx is working + - Paste the URL of your Django server into the chat + - Ensure you can reach the other Django servers + - Follow steps on https://docs.djangoproject.com/en/3.0/intro/tutorial06/ +*** Django #8: Tutorial 7 +**** Lecture content + - Environment like in Django 1 and Django 3 + - Ensure your nginx is working + - Paste the URL of your Django server into the chat + - Ensure you can reach the other Django servers + - Follow steps on https://docs.djangoproject.com/en/3.0/intro/tutorial07/ +* 2020-07-13 +*** Django #6: Tutorial 5 +**** DONE Lecture content + CLOSED: [2020-07-14 화 00:25] + - Environment like in Django 1 and Django 3 + - Ensure your nginx is working + - Follow steps on https://docs.djangoproject.com/en/3.0/intro/tutorial05/ + +* 2020-07-10 +*** Django #5: Tutorial 4 +**** DONE Lecture content + CLOSED: [2020-07-14 화 00:19] + - Environment like in Django 1 and Django 3 + - Ensure your nginx is working + - Follow steps on https://docs.djangoproject.com/en/3.0/intro/tutorial04/ + +* 2020-07-08 +*** Django #4: Tutorial 3 +**** DONE Lecture content + CLOSED: [2020-07-14 화 00:18] + - Environment like in Django 1 and Django 3 + - Ensure your nginx is working + - Follow steps on https://docs.djangoproject.com/en/3.0/intro/tutorial03/ +* 2020-07-06 +*** Django #3: using http and https +**** DONE Lecture content + CLOSED: [2020-07-14 화 00:17] + - We want expose our Django app via https to the world + - We want to allow IPv6 world wide access + - Steps IPv6 + - Ensure you have IPv6 connectivity + - Get a VPN from IPv6VPN.ch if you don't have IPv6 + - Ensure that your firewall allows access to ports 80 and 443 + to your machine + - Coordinate with another participant to test your connection + - The square brackets are needed in the following examples + - curl -vv http://[your ipv6 address] + - curl -vv https://[your ipv6 address] + - Both examples should return "connection refused" + - Find out your Domain name + - We will install an letsencrypt certificate + - Certificates need a name + - The website https://has-a.name provides you with a name + - Find out your name + - Have somebody else ping your name + - Steps webserver + - Install nginx + - Have somebody else run curl -v http://.has-a.name + - Install certbot + - Use certbot to request a certificate for your name + - Use the nginx plugin of certbot + - Have somebody else run curl -v https://.has-a.name + (with httpS!) + - Proxy configuration + - We want nginx to forward the HTTPS requests to django + - We run django on the IPv6 localhost + - python manage.py runserver '[::1]:8000' + - Note: this is different from last session! + - We configure nginx to proxy to django + - Locate the configuration file for the https server (usually + somewhere below /etc/nginx) + - Add a proxy configuration to it + - The proxy block looks similar to this: + location / { + proxy_pass http://localhost:8000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } + - Test with the other participants to reach you! + - Add your nginx configuration * 2020-07-04 *** Django #2: Tutorial 2 **** DONE Lecture content From 0f04c0771de87973f8c8ac6164cd07ef4261e3f9 Mon Sep 17 00:00:00 2001 From: kjg Date: Wed, 15 Jul 2020 22:22:40 +0900 Subject: [PATCH 14/38] [Django #7] Tutorial 6 --- .../polls/static/polls/images/background.gif | Bin 0 -> 158721 bytes .../polls/static/polls/images/background2.png | Bin 0 -> 143035 bytes kjg/django/mysite/polls/static/polls/style.css | 8 ++++++++ .../mysite/polls/templates/polls/index.html | 4 ++++ 4 files changed, 12 insertions(+) create mode 100644 kjg/django/mysite/polls/static/polls/images/background.gif create mode 100644 kjg/django/mysite/polls/static/polls/images/background2.png create mode 100644 kjg/django/mysite/polls/static/polls/style.css diff --git a/kjg/django/mysite/polls/static/polls/images/background.gif b/kjg/django/mysite/polls/static/polls/images/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..928417e49a15101de8fd0491efa67556f17a5f3d GIT binary patch literal 158721 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

%u&U|_yzxV`h5Bk_~_ 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%0An$j~adI-ELh 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Ξ{6m-DZkAV33a%D%;b7?X0Et#YH@2Gu1$^qRHVKZHlYZRZX)S;?w-nuA z&g?PaK9oeXQp09&xwE{`Wens&8#6bbDRAZr9s8UHaL$aT@u%i6)hPEBtn$^cO_4;8bm8UI=_*ql2Sa1k8BJR}1PZ7yxIJCa4mD z5hkNo_6GY*lsrH^N>*Ug(nCmz_a>{XpTFadb@MM3f6jWLU%O{rY_~~YitqM|`yRnr zB;6jdry&S=9W;kgv&&4JL;^^xjmfwJPfMdG@=7qK=;ArcLCw&FV>PqoW;nd_R8s9Bf*`e})K?lLDvPY@9=z zF*Me646oXmZ`4PzH?Nb2Ab5JQ;MG!Y>_$?%INHjA-o8%E7D z=w4Ea?_KbzEDyQK-RI8InAW4M85h^sy}jR;wm-Fc$cge$myvBBquG zk>!NBVl*v>*21Irk%**cmSbv2F?+)UX1PaMK-G^kh*%TR~v=o_3ULJba z3mWFd)DM{~cD_b=AT@Eku&ms7Me>k7{jmNIqP`InK#zc^JzY1Bn%48rx)g*U+GY%d$w6Bo$Or|h%r+OLCKj9&QJ#Pp#X%H+^qIPae${J( zveyNZ>~EbuhHe%wV-gJ{UKXs)801b3c4J-Dt^V$m)WHEMZ!?+ZrwaHn4Wi5yA9GO@ zH|i`VO#{Zy>)UXqSW4lE7_qBBW=e@fRf>aH#&bG*Vy7xC%?>um)cmDSW~BfJZL-cEKCX5tP}=8VTFj^vtr-69Wz+z<- z(JeC1Bv~}Xiwi{f;CVzQuB%|bl(PJMC)`|O%}gF7gBmH-tnhusD|*jL47VDHyX~N1 z!j$Xx(=jy{$3Prz�ZFs&<*HDwe@IO2lXk3Of@r3r zo~XUtx&8^PQ@fzEbz^%)`o+m@=J(4*drEv?3nrvCs}}4=6a4cs3NgOh6k(^YxWxZjKN zsW*FGeLtBfBUMs*xhP9!7P$X*$b@;w9m=iA)W(@Xjod+HFIcw}p%Wmn+)gn%g`Wn} zGf|lVx+ZZ-iiQ3X{bZOC*#>~n1=o^_U zCR`XoYsfvTL%z>~o28gi>`r+H`h2pILVM?NlK=IWYC1lZplFatb4}s6V&pcld;GP^ zWoGsT9|NA*iF#ikv(38U7(8p826VSK&f*4*OzCZ+Ub8x8SQVsge*&=tPW$3Dq}_etrpcWuPs09Q zxI#f>S^(bm>q5LiLD{N*Bn;qAX~_m|o(8VfN~2{SlR;g8FubbRuI+o8-f!OGPW~V^ z$Rp)aZrw!#|DA0RBIjDFOz6UCZAL>f$f^e5tp;eo0#GK@7>eP3V67Ui;6`J~b|mfI zDiL@AmO8`ONo{tT3odAc9g_trMbE!w;x{3fMpzpn)Ku0UG>C0Zaf7 z2!S)`OpTSD#_5bVFl?gj*x5GjFzA6KaHA)1V<%|B1mgh>Bm@s}?{CO%?Ecnn2hT1D zYw((h@M7Fs1CWAGoF&W?D3x1u;@XO^%fcP1!f8{;;fczn+NLcfH-$5t=q9J?mI7gax~edwt_4u-5}belH~48OVTY7BXCv^AZ!X?0$6ajxa=IaAO%k7`*B*_^!9AEi+U@jakD@^c9)J z;6Zl-G6(?=aKJ~Fff{rRb7@Q>5CR<>LK%nw4Um8ekiZI9fiq`sWJWb9KY#)tfZ|$b zN&m5}!m>CMa#x%4L4`C!D1Zg5ZU+#-%5Jhx<{+u!VlEo~T8&kMF*t%12thydKtH>{ z1PHAPi~$_NYz};Fv0`O1+;Ozrg_1}Ip6f?0B zk8}A7t^goF2YA3}TR;o&?k9Vz=)Nqt3a1^~v>U5!GPJZBt1-;#Rn5X4oUX7jK*caf z#SzRZ0Zb_nH*08D}zRDf1@Hu!oqAanFNhi?WWKxHp>SzCY;JjGKy@-m~6 zGw47HNWe)3U*L=Y4>$t*O|mDS=uZA3sgjI$_x3PE^kj}GWh;OmQ+Hc%HD`bCbo+OA z@laJ`Hv>R`lOVtWAb_!f+Ao7EF|PDfCDAk8Z58^DTqQL zpuq+E?+Q?XG4$Zv)$GQx9qOTy+(m;hH~|q9gE1Hb7HqFo2hgA{NpVXzNYk=c7x-i< zzywS{1!zD7T=qs+C&?S{m+bN~x|}Y%)$QBzzpnwBk(3uAm>wf!4h-;-cs#EBraHYbdd-6EJJrd002AnO$WCC literal 0 HcmV?d00001 diff --git a/kjg/django/mysite/polls/static/polls/images/background2.png b/kjg/django/mysite/polls/static/polls/images/background2.png new file mode 100644 index 0000000000000000000000000000000000000000..a22ed9edc0df81781eecdc3970d6db391e93ee9a GIT binary patch literal 143035 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

2Pl zUU2gkRw8Ry^v$%9vr6V|UhnSa{v5es!NJyD^vHO7cS2C#2=t434-s=V;p1(WvGM8? z+n??73UD$n8+VB05u=;PO21WNgPbU@ekbav^7o}GIksADg95mWGSaEF&idwAG;BETf1a#~Sf1i%%=iMC}7XJXfN<&OV4=sU6WqjBTvCCvWdU+`g&v34LPBdbYbDqCzZu$J>pZSBRfI7<$!;>ZV%-)v*t-q1>V zE#|G{)&UN{%`}aY| zexc|e^9iEnZ^7K(?_k%heB_i=Ah);zXEO_$HlBS@_r>PDi7_!TEt>Dhf8eoa<;VRq zw#Mf^SQ)IZ_;qY!{qabH`c@q3a|mRLhUoY)HkOeurN6wz?U03?mwsiK1P z`c!ZPr}42EFJP&}aSo!Hk3hu;G7L8Ak`y$QNH(L-;T&LI_D0g_KCzkG#9nU45zxd! zb(yncqM$ex1?3S5GIe`GQB7>7W@9LUN(f#oAA!mh!|`I-Fg#yDtY+gF)a;DJlWj9_ z@5&959gk7{@)_!Cs!*>{;>y9(7}}#h{0U&%J9@yceIVVa-U#$|6YF06y#nCp#9gaS z@bl;jR|gOHIJqK#fW^a^fXBxdA5EN&7mrJbz32o>(bv~Q*Pus3J%J5-F*=<98F}i7 z;YdG5tx*xsC`c+PP+eU~Oy(sj%1cmCn2$#fGmw#X2U%(N@rXbs?{O|}-MWGO`}Sh) zXY=9VO5o?_4KEi*#7<1cqwE~KKl5ENt!-;*C;EF>HgT+|*qhB|Y>wRI`67<+Y-joR zoDmN=GKh$+l&vfTGZ7)#mhIFw$3{IVCwE-uHZjH0G>C+}7+-nhSc zcIlsb99{KMr^h?u?`5tI(LY%i(y07noI!VCl0i+9NkfuJOH4yu%tMT?8O?MdeVDOG zmLf~kYNN@kERrz~Z1gINlSF1O8^0=%-wOhEFvEGdwP0apGN?cJ6UGOWW@`h z(cb5EwG1|K&|D+wM6yYJhJfZoBoxA%8H3v2Mxo}{v8eoU6slH_!mHII@p2_kU=PR3 zUqVo`D-usPhvDv-Lnz3}#`C8osHPiQqgJA!u^xHp53%giFVH`z7yR8l;O*fJ4+0!7 z7dQC0d&Ae&lNgOBIuPUWc5p#Zhag0UL}KM;m`ZS z-gu)qxauEyJl+^*_w@IegHJY%(WfsTR$sd_yh+E~8*j!!mz@B0!BmnnQ{-3xm$BKO zA+V8>Xo@ILD~nT!y-XGirY1iTb%jZE($~etq&%)Jm8Se%VdBO-9nUmzY(()?G~}nC zzJSiWDa2?9+_IC!3R~TS1ZdJoQr#ixbdvz*>LlpSaE8nTC=ZTKaNH3eS~p?Mx$p?PxR^D3%&gMB5ZIdW==@K&Lx|Xe?13H)fxg30uTZWjZRCf zrGc0XOClZW_57X$F#1OEJ#N6$3Wh_^Y1s%Sxg=(ml)~_>t!9vUg=bGoh3T97=pi!i z-$vS^;kFYb&FtMbuYilpEWt@cZYX$2T79!TdyoKDI#AR$QXN%|up4Fn)nYXc( z>uiN*Vo-X4MC?H?oK?k(ZV)Kxtb z;ZcnQ3QfdjnwlD6Ff^fw&PD*u%ZT%Nz7)L!7!+3_3Y2^W32=woleXwNyE1qb+whKdc`c}DayHYo%a|Ivso(L z#=YANG&hlzo`JM`_i*g+VXR&EGx`o33U`uA?oKZ7>(~{C4j#qvlc(Sx*p*m>orr

yz8*fRtJqGu!QgEjbg$0cmP`WP7nrH1^n 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 rQ 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 + {% if latest_question_list %}

    {% for question in latest_question_list %} From a5f071afadfbb261c1453a3eaebbb2605e9a9ba6 Mon Sep 17 00:00:00 2001 From: samuel Date: Wed, 15 Jul 2020 16:36:19 +0200 Subject: [PATCH 15/38] sweets22 --- sami/django/mysite2/polls/.#models.py | 1 - sami/django/mysite2/polls/models.py | 15 +- .../mysite2/polls/templates/detail.html | 13 ++ .../mysite2/polls/templates/polls/detail.html | 13 +- .../mysite2/polls/templates/polls/index.html | 15 +- sami/django/mysite2/polls/tests.py | 129 +++++++++++++++++- sami/django/mysite2/polls/urls.py | 12 +- sami/django/mysite2/polls/views.py | 47 +++++-- 8 files changed, 200 insertions(+), 45 deletions(-) delete mode 120000 sami/django/mysite2/polls/.#models.py create mode 100644 sami/django/mysite2/polls/templates/detail.html diff --git a/sami/django/mysite2/polls/.#models.py b/sami/django/mysite2/polls/.#models.py deleted file mode 120000 index 3884ade..0000000 --- a/sami/django/mysite2/polls/.#models.py +++ /dev/null @@ -1 +0,0 @@ -sami@afro-linux-lenovo-b50-30.8898:1594292241 \ No newline at end of file diff --git a/sami/django/mysite2/polls/models.py b/sami/django/mysite2/polls/models.py index 1914ee2..a7c5580 100644 --- a/sami/django/mysite2/polls/models.py +++ b/sami/django/mysite2/polls/models.py @@ -1,7 +1,7 @@ -from django.utils import timezone -from django.db import models import datetime +from django.db import models +from django.utils import timezone # Create your models here. @@ -9,19 +9,20 @@ import datetime class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') - def __str__(self): return self.question_text def was_published_recently(self): - return self.pub_date >= timezone.now() -datetime.timedelta(days=1) + now = timezone.now() + return now - datetime.timedelta(days=1) <= self.pub_date <= now + #def was_published_recently(self): + #return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + + class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) - def __str__(self): return self.choice_text - - diff --git a/sami/django/mysite2/polls/templates/detail.html b/sami/django/mysite2/polls/templates/detail.html new file mode 100644 index 0000000..c225d49 --- /dev/null +++ b/sami/django/mysite2/polls/templates/detail.html @@ -0,0 +1,13 @@ +

    {{ question.question_text }}

    + +{% if error_message %}

    {{ error_message }}

    {% endif %} + +
    +{% csrf_token %} +{% for choice in question.choice_set.all %} + +
    +{% endfor %} + +
    +p diff --git a/sami/django/mysite2/polls/templates/polls/detail.html b/sami/django/mysite2/polls/templates/polls/detail.html index 6667640..3e55544 100644 --- a/sami/django/mysite2/polls/templates/polls/detail.html +++ b/sami/django/mysite2/polls/templates/polls/detail.html @@ -1 +1,12 @@ -{{ question }} +

    {{ question.question_text }}

    + +{% if error_message %}

    {{ error_message }}

    {% endif %} + +
    +{% csrf_token %} +{% for choice in question.choice_set.all %} + +
    +{% endfor %} + +
    diff --git a/sami/django/mysite2/polls/templates/polls/index.html b/sami/django/mysite2/polls/templates/polls/index.html index 71c2249..4560139 100644 --- a/sami/django/mysite2/polls/templates/polls/index.html +++ b/sami/django/mysite2/polls/templates/polls/index.html @@ -1,22 +1,9 @@ {% if latest_question_list %}
    {% else %}

    No polls are available.

    {% endif %} - -

    {{ question.question_text }}

    - -{% if error_message %}

    {{ error_message }}

    {% endif %} - -
    -{% csrf_token %} -{% for choice in question.choice_set.all %} - -
    -{% endfor %} - -
    diff --git a/sami/django/mysite2/polls/tests.py b/sami/django/mysite2/polls/tests.py index 7ce503c..3604a06 100644 --- a/sami/django/mysite2/polls/tests.py +++ b/sami/django/mysite2/polls/tests.py @@ -1,3 +1,128 @@ -from django.test import TestCase +import datetime -# Create your tests here. +from django.test import TestCase +from django.utils import timezone +from django.urls import reverse + +from .models import Question + + +class QuestionModelTests(TestCase): + + def test_was_published_recently_with_future_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is in the future. + """ + time = timezone.now() + datetime.timedelta(days=30) + future_question = Question(pub_date=time) + self.assertIs(future_question.was_published_recently(), False) + + def test_was_published_recently_with_old_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is older than 1 day. + """ + time = timezone.now() - datetime.timedelta(days=1, seconds=1) + old_question = Question(pub_date=time) + self.assertIs(old_question.was_published_recently(), False) + + def test_was_published_recently_with_recent_question(self): + """ + was_published_recently() returns True for questions whose pub_date + is within the last day. + """ + time = timezone.now() - datetime.timedelta(hours=23, minutes=59, seconds=59) + recent_question = Question(pub_date=time) + self.assertIs(recent_question.was_published_recently(), True) + + + +def create_question(question_text, days): + """ + Create a question with the given `question_text` and published the + given number of `days` offset to now (negative for questions published + in the past, positive for questions that have yet to be published). + """ + time = timezone.now() + datetime.timedelta(days=days) + return Question.objects.create(question_text=question_text, pub_date=time) + + +class QuestionIndexViewTests(TestCase): + def test_no_questions(self): + """ + If no questions exist, an appropriate message is displayed. + """ + response = self.client.get(reverse('polls:index')) + self.assertEqual(response.status_code, 200) + self.assertContains(response, "No polls are available.") + self.assertQuerysetEqual(response.context['latest_question_list'], []) + + def test_past_question(self): + """ + Questions with a pub_date in the past are displayed on the + index page. + """ + create_question(question_text="Past question.", days=-30) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + [''] + ) + + def test_future_question(self): + """ + Questions with a pub_date in the future aren't displayed on + the index page. + """ + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse('polls:index')) + self.assertContains(response, "No polls are available.") + self.assertQuerysetEqual(response.context['latest_question_list'], []) + + def test_future_question_and_past_question(self): + """ + Even if both past and future questions exist, only past questions + are displayed. + """ + create_question(question_text="Past question.", days=-30) + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + [''] + ) + + def test_two_past_questions(self): + """ + The questions index page may display multiple questions. + """ + create_question(question_text="Past question 1.", days=-30) + create_question(question_text="Past question 2.", days=-5) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + ['', ''] + ) + + +class QuestionDetailViewTests(TestCase): + def test_future_question(self): + """ + The detail view of a question with a pub_date in the future + returns a 404 not found. + """ + future_question = create_question(question_text='Future question.', days=5) + url = reverse('polls:detail', args=(future_question.id,)) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + def test_past_question(self): + """ + The detail view of a question with a pub_date in the past + displays the question's text. + """ + past_question = create_question(question_text='Past Question.', days=-5) + url = reverse('polls:detail', args=(past_question.id,)) + response = self.client.get(url) + self.assertContains(response, past_question.question_text) diff --git a/sami/django/mysite2/polls/urls.py b/sami/django/mysite2/polls/urls.py index 0b66ce8..eff2be0 100644 --- a/sami/django/mysite2/polls/urls.py +++ b/sami/django/mysite2/polls/urls.py @@ -1,13 +1,11 @@ from django.urls import path -# Here is importing the views which I modified + from . import views + app_name = 'polls' urlpatterns = [ - path('', views.index, name='index'), - # ex: /polls/5/ - path('/', views.detail, name='detail'), - # ex: /polls/5/results/ - path('/results/', views.results, name='results'), - # ex: /polls/5/vote/ + path('', views.IndexView.as_view(), name='index'), + path('/', views.DetailView.as_view(), name='detail'), + path('/results/', views.ResultsView.as_view(), name='results'), path('/vote/', views.vote, name='vote'), ] diff --git a/sami/django/mysite2/polls/views.py b/sami/django/mysite2/polls/views.py index b018678..68cf7b5 100644 --- a/sami/django/mysite2/polls/views.py +++ b/sami/django/mysite2/polls/views.py @@ -1,38 +1,61 @@ -# Here is the fist view add by Sami from Diesbach -from django.shortcuts import render -from django.http import HttpResponse -from django.shortcuts import Http404 -from .models import Choice, Question +from django.http import HttpResponse, HttpResponseRedirect +#from django.http import Http404 from django.template import loader from django.shortcuts import get_object_or_404, render -from django.http import HttpResponse, HttpResponseRedirect from django.urls import reverse from django.views import generic +from django.utils import timezone + +from .models import Choice, Question - +#def index(request): +# latest_question_list = Question.objects.order_by('-pub_date')[:5] +# context = {'latest_question_list': latest_question_list} +# return render(request, 'polls/index.html', context) class IndexView(generic.ListView): template_name = 'polls/index.html' context_object_name = 'latest_question_list' def get_queryset(self): - """Return the last five published questions.""" - return Question.objects.order_by('-pub_date')[:5] + """ + Return the last five published questions (not including those set to be + published in the future). + """ + return Question.objects.filter( + pub_date__lte=timezone.now() + ).order_by('-pub_date')[:5] + #"""Return the last five published questions.""" + #return Question.objects.order_by('-pub_date')[:5] +#def detail(request, question_id): +# #return HttpResponse("You're looking at question %s." % question_id) +# question = get_object_or_404(Question, pk=question_id) +# return render(request, 'polls/detail.html', {'question': question}) class DetailView(generic.DetailView): model = Question template_name = 'polls/detail.html' + + def get_queryset(self): + """ + Excludes any questions that aren't published yet. + """ + return Question.objects.filter(pub_date__lte=timezone.now()) +#def results(request, question_id): +# #response = "You're looking at the results of question %s." +# #return HttpResponse(response % question_id) +# question = get_object_or_404(Question, pk=question_id) +# return render(request, 'polls/results.html', {'question': question}) class ResultsView(generic.DetailView): model = Question template_name = 'polls/results.html' - - def vote(request, question_id): + #return HttpResponse("You're voting on question %s." % question_id) question = get_object_or_404(Question, pk=question_id) try: selected_choice = question.choice_set.get(pk=request.POST['choice']) @@ -49,5 +72,3 @@ def vote(request, question_id): # with POST data. This prevents data from being posted twice if a # user hits the Back button. return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) - - From 7c4da46d7302067a9c076695e9ad64a6bb24b9d9 Mon Sep 17 00:00:00 2001 From: kjg Date: Fri, 17 Jul 2020 22:33:39 +0900 Subject: [PATCH 16/38] [Django #8] Tutorial 7 --- kjg/django/mysite/mysite/settings.py | 2 +- kjg/django/mysite/polls/admin.py | 19 +++++++++++++++++-- kjg/django/mysite/polls/models.py | 6 ++++++ .../polls/templates/admin/base_site.html | 9 +++++++++ 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 kjg/django/mysite/polls/templates/admin/base_site.html diff --git a/kjg/django/mysite/mysite/settings.py b/kjg/django/mysite/mysite/settings.py index ec0bcd2..97b8565 100644 --- a/kjg/django/mysite/mysite/settings.py +++ b/kjg/django/mysite/mysite/settings.py @@ -55,7 +55,7 @@ ROOT_URLCONF = 'mysite.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ diff --git a/kjg/django/mysite/polls/admin.py b/kjg/django/mysite/polls/admin.py index ffd3760..88e96f7 100644 --- a/kjg/django/mysite/polls/admin.py +++ b/kjg/django/mysite/polls/admin.py @@ -2,5 +2,20 @@ from django.contrib import admin from .models import Question, Choice -admin.site.register(Question) -admin.site.register(Choice) +class ChoiceInline(admin.TabularInline): + model = Choice + extra = 3 + + +class QuestionAdmin(admin.ModelAdmin): + fieldsets = [ + (None, {'fields': ['question_text']}), + ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}), + ] + inlines = [ChoiceInline] + list_display = ('question_text', 'pub_date', 'was_published_recently') + list_filter = ['pub_date'] + search_fields = ['question_text'] + +admin.site.register(Question, QuestionAdmin) +#admin.site.register(Choice) diff --git a/kjg/django/mysite/polls/models.py b/kjg/django/mysite/polls/models.py index a7c5580..06bfcdc 100644 --- a/kjg/django/mysite/polls/models.py +++ b/kjg/django/mysite/polls/models.py @@ -15,6 +15,12 @@ class Question(models.Model): def was_published_recently(self): now = timezone.now() return now - datetime.timedelta(days=1) <= self.pub_date <= now + def was_published_recently(self): + now = timezone.now() + return now - datetime.timedelta(days=1) <= self.pub_date <= now + was_published_recently.admin_order_field = 'pub_date' + was_published_recently.boolean = True + was_published_recently.short_description = 'Published recently?' #def was_published_recently(self): #return self.pub_date >= timezone.now() - datetime.timedelta(days=1) diff --git a/kjg/django/mysite/polls/templates/admin/base_site.html b/kjg/django/mysite/polls/templates/admin/base_site.html new file mode 100644 index 0000000..9587878 --- /dev/null +++ b/kjg/django/mysite/polls/templates/admin/base_site.html @@ -0,0 +1,9 @@ +{% extends "admin/base.html" %} + +{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} + +{% block branding %} +

    Polls Administration

    +{% endblock %} + +{% block nav-global %}{% endblock %} From 96cd1347d6af6554eae034a20bee8d0e6798abb0 Mon Sep 17 00:00:00 2001 From: samuel Date: Fri, 17 Jul 2020 16:31:20 +0200 Subject: [PATCH 17/38] tutorial-7 half way --- sami/django/mysite2/polls/templates/admin/base_site.html | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 sami/django/mysite2/polls/templates/admin/base_site.html diff --git a/sami/django/mysite2/polls/templates/admin/base_site.html b/sami/django/mysite2/polls/templates/admin/base_site.html new file mode 100644 index 0000000..cae0a69 --- /dev/null +++ b/sami/django/mysite2/polls/templates/admin/base_site.html @@ -0,0 +1,9 @@ +{% extends "admin/base.html" %} + +{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} + +{% block branding %} +

    {{ site_header|default:_('Django administration') }}

    +{% endblock %} + +{% block nav-global %}{% endblock %} From 485e78a6e2159b746212fb90ead7f6d61b44bab7 Mon Sep 17 00:00:00 2001 From: pedrolab <531310-pedrolab@users.noreply.gitlab.com> Date: Mon, 20 Jul 2020 02:09:01 +0200 Subject: [PATCH 18/38] django tutorial #4 completed --- .../mysite/polls/templates/polls/detail.html | 12 ++- .../mysite/polls/templates/polls/results.html | 9 +++ pedro/django-tutorial/mysite/polls/urls.py | 7 +- pedro/django-tutorial/mysite/polls/views.py | 79 +++++++++++++++---- 4 files changed, 84 insertions(+), 23 deletions(-) create mode 100644 pedro/django-tutorial/mysite/polls/templates/polls/results.html diff --git a/pedro/django-tutorial/mysite/polls/templates/polls/detail.html b/pedro/django-tutorial/mysite/polls/templates/polls/detail.html index 975db2a..3e55544 100644 --- a/pedro/django-tutorial/mysite/polls/templates/polls/detail.html +++ b/pedro/django-tutorial/mysite/polls/templates/polls/detail.html @@ -1,6 +1,12 @@

    {{ question.question_text }}

    -
      + +{% if error_message %}

      {{ error_message }}

      {% endif %} + +
      +{% csrf_token %} {% for choice in question.choice_set.all %} -
    • {{ choice.choice_text }}
    • + +
      {% endfor %} -
    + + diff --git a/pedro/django-tutorial/mysite/polls/templates/polls/results.html b/pedro/django-tutorial/mysite/polls/templates/polls/results.html new file mode 100644 index 0000000..bc78e2b --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/templates/polls/results.html @@ -0,0 +1,9 @@ +

    {{ question.question_text }}

    + +
      +{% for choice in question.choice_set.all %} +
    • {{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}
    • +{% endfor %} +
    + +Vote again? diff --git a/pedro/django-tutorial/mysite/polls/urls.py b/pedro/django-tutorial/mysite/polls/urls.py index 3e302ea..8aa1a75 100644 --- a/pedro/django-tutorial/mysite/polls/urls.py +++ b/pedro/django-tutorial/mysite/polls/urls.py @@ -6,11 +6,12 @@ from . import views app_name = 'polls' urlpatterns = [ # ex: /polls/ - path('', views.index, name='index'), + #path('', views.index, name='index'), + path('', views.IndexView.as_view(), name='index'), # ex: /polls/5/ - path('/', views.detail, name='detail'), + path('/', views.DetailView.as_view(), name='detail'), # ex: /polls/5/results/ - path('/results/', views.results, name='results'), + path('/results/', views.ResultsView.as_view(), name='results'), # ex: /polls/5/vote/ path('/vote/', views.vote, name='vote'), ] diff --git a/pedro/django-tutorial/mysite/polls/views.py b/pedro/django-tutorial/mysite/polls/views.py index 257fe14..e9b70d9 100644 --- a/pedro/django-tutorial/mysite/polls/views.py +++ b/pedro/django-tutorial/mysite/polls/views.py @@ -2,10 +2,12 @@ from django.shortcuts import get_object_or_404, render # Create your views here. -from django.http import HttpResponse +from django.http import HttpResponse, HttpResponseRedirect from django.template import loader +from django.urls import reverse +from django.views import generic -from .models import Question +from .models import Choice, Question from django.http import Http404 @@ -30,12 +32,20 @@ from django.http import Http404 ## meaningful, templated and easy to write index ## and then we no longer need to import loader and HttpResponse -def index(request): - latest_question_list = Question.objects.order_by('-pub_date')[:5] - context = { - 'latest_question_list': latest_question_list, - } - return render(request, 'polls/index.html', context) +#def index(request): +# latest_question_list = Question.objects.order_by('-pub_date')[:5] +# context = { +# 'latest_question_list': latest_question_list, +# } +# return render(request, 'polls/index.html', context) + +class IndexView(generic.ListView): + template_name = 'polls/index.html' + context_object_name = 'latest_question_list' + + def get_queryset(self): + """Return the last five published questions.""" + return Question.objects.order_by('-pub_date')[:5] ## simple detail #def detail(request, question_id): @@ -50,13 +60,48 @@ def index(request): # return render(request, 'polls/detail.html', {'question': question}) ## meaningful and easy to write detail -def detail(request, question_id): +#def detail(request, question_id): +# question = get_object_or_404(Question, pk=question_id) +# return render(request, 'polls/detail.html', {'question': question}) + +## refactor detail view +class DetailView(generic.DetailView): + model = Question + template_name = 'polls/detail.html' + +#def results(request, question_id): +# response = "You're looking at the results of question %s." +# return HttpResponse(response % question_id) + +# # real implementation of results +#def results(request, question_id): +# question = get_object_or_404(Question, pk=question_id) +# return render(request, 'polls/results.html', {'question': question}) + +# # refactor results view +class ResultsView(generic.DetailView): + model = Question + template_name = 'polls/results.html' + +#def vote(request, question_id): +# return HttpResponse("You're voting on question %s." % question_id) + + +# #real implementation of vote +def vote (request, question_id): question = get_object_or_404(Question, pk=question_id) - return render(request, 'polls/detail.html', {'question': question}) - -def results(request, question_id): - response = "You're looking at the results of question %s." - return HttpResponse(response % question_id) - -def vote(request, question_id): - return HttpResponse("You're voting on question %s." % question_id) + try: + selected_choice = question.choice_set.get(pk=request.POST['choice']) + except (KeyError, Choice.DoesNotExist): + # Redisplay the question voting form. + return render(request, 'polls/detail.html', { + 'question': question, + 'error_message': "You didn't select a choice.", + }) + else: + selected_choice.votes += 1 + selected_choice.save() + # Always return an HttpResponseRedirect after successfully dealing + # with POST data. This prevents data from being posted twice if a + # user hits the Back button + return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) From 0ac32ef62b0c102a5897f2682b81a20351221b51 Mon Sep 17 00:00:00 2001 From: pedrolab <531310-pedrolab@users.noreply.gitlab.com> Date: Mon, 20 Jul 2020 02:56:30 +0200 Subject: [PATCH 19/38] django tutorial #5 completed --- pedro/django-tutorial/mysite/polls/models.py | 5 +- pedro/django-tutorial/mysite/polls/tests.py | 127 ++++++++++++++++++- pedro/django-tutorial/mysite/polls/views.py | 22 +++- 3 files changed, 150 insertions(+), 4 deletions(-) diff --git a/pedro/django-tutorial/mysite/polls/models.py b/pedro/django-tutorial/mysite/polls/models.py index bfd48bd..a6e19c8 100644 --- a/pedro/django-tutorial/mysite/polls/models.py +++ b/pedro/django-tutorial/mysite/polls/models.py @@ -11,7 +11,10 @@ class Question(models.Model): def __str__(self): return self.question_text def was_published_recently(self): - return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + # bug + #return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + now = timezone.now() + return now - datetime.timedelta(days=1) <= self.pub_date <= now class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) diff --git a/pedro/django-tutorial/mysite/polls/tests.py b/pedro/django-tutorial/mysite/polls/tests.py index 7ce503c..c123f37 100644 --- a/pedro/django-tutorial/mysite/polls/tests.py +++ b/pedro/django-tutorial/mysite/polls/tests.py @@ -1,3 +1,128 @@ +import datetime + from django.test import TestCase -# Create your tests here. +from django.utils import timezone + +from .models import Question + +from django.urls import reverse + + +class QuestionModelTests(TestCase): + + def test_was_published_recently_with_future_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is in the future. + """ + time = timezone.now() + datetime.timedelta(days=30) + future_question = Question(pub_date=time) + self.assertIs(future_question.was_published_recently(), False) + + def test_was_published_recently_with_old_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is older than 1 day. + """ + time = timezone.now() - datetime.timedelta(days=1, seconds=1) + old_question = Question(pub_date=time) + self.assertIs(old_question.was_published_recently(), False) + + def test_was_published_recently_with_recent_question(self): + """ + was_published_recently() returns True for questions whose pub_date + is within the last day. + """ + time = timezone.now() - datetime.timedelta(hours=23, minutes=59, seconds=59) + recent_question = Question(pub_date=time) + self.assertIs(recent_question.was_published_recently(), True) + + + +def create_question(question_text, days): + """ + Create a question with the given `question_text` and published the + given number of `days` offset to now (negative for questions published + in the past, positive for questions that have yet to be published). + """ + time = timezone.now() + datetime.timedelta(days=days) + return Question.objects.create(question_text=question_text, pub_date=time) + +class QuestionIndexViewTests(TestCase): + def test_no_questions(self): + """ + If no questions exist, an appropriate message is displayed. + """ + response = self.client.get(reverse('polls:index')) + self.assertEqual(response.status_code, 200) + self.assertContains(response, "No polls are available.") + self.assertQuerysetEqual(response.context['latest_question_list'], []) + + def test_past_question(self): + """ + Questions with a pub_date in the past are displayed on the + index page. + """ + create_question(question_text="Past question.", days=-30) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + [''] + ) + + def test_future_question(self): + """ + Questions with a pub_date in the future aren't displayed on + the index page. + """ + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse('polls:index')) + self.assertContains(response, "No polls are available.") + self.assertQuerysetEqual(response.context['latest_question_list'], []) + + def test_future_question_and_past_question(self): + """ + Even if both past and future questions exist, only past questions + are displayed. + """ + create_question(question_text="Past question.", days=-30) + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + [''] + ) + + def test_two_past_questions(self): + """ + The questions index page may display multiple questions. + """ + create_question(question_text="Past question 1.", days=-30) + create_question(question_text="Past question 2.", days=-5) + response = self.client.get(reverse('polls:index')) + self.assertQuerysetEqual( + response.context['latest_question_list'], + ['', ''] + ) + +class QuestionDetailViewTests(TestCase): + def test_future_question(self): + """ + The detail view of a question with a pub_date in the future + returns a 404 not found. + """ + future_question = create_question(question_text='Future question.', days=5) + url = reverse('polls:detail', args=(future_question.id,)) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + def test_past_question(self): + """ + The detail view of a question with a pub_date in the past + displays the question's text. + """ + past_question = create_question(question_text='Past Question.', days=-5) + url = reverse('polls:detail', args=(past_question.id,)) + response = self.client.get(url) + self.assertContains(response, past_question.question_text) diff --git a/pedro/django-tutorial/mysite/polls/views.py b/pedro/django-tutorial/mysite/polls/views.py index e9b70d9..89b1196 100644 --- a/pedro/django-tutorial/mysite/polls/views.py +++ b/pedro/django-tutorial/mysite/polls/views.py @@ -11,6 +11,8 @@ from .models import Choice, Question from django.http import Http404 +from django.utils import timezone + ## simple index #def index(request): # return HttpResponse("Hello, world. You're at the polls index.") @@ -43,9 +45,20 @@ class IndexView(generic.ListView): template_name = 'polls/index.html' context_object_name = 'latest_question_list' +## has bug +# def get_queryset(self): +# """Return the last five published questions.""" +# return Question.objects.order_by('-pub_date')[:5] + +# refactor def get_queryset(self): - """Return the last five published questions.""" - return Question.objects.order_by('-pub_date')[:5] + """ + Return the last five published questions (not including those set to be + published in the future). + """ + return Question.objects.filter( + pub_date__lte=timezone.now() + ).order_by('-pub_date')[:5] ## simple detail #def detail(request, question_id): @@ -68,6 +81,11 @@ class IndexView(generic.ListView): class DetailView(generic.DetailView): model = Question template_name = 'polls/detail.html' + def get_queryset(self): + """ + Excludes any questions that aren't published yet. + """ + return Question.objects.filter(pub_date__lte=timezone.now()) #def results(request, question_id): # response = "You're looking at the results of question %s." From 751a1df5171a852ba7b8df49167f93ed266422f8 Mon Sep 17 00:00:00 2001 From: pedrolab <531310-pedrolab@users.noreply.gitlab.com> Date: Mon, 20 Jul 2020 03:18:49 +0200 Subject: [PATCH 20/38] django tutorial #6 completed --- .../polls/static/polls/images/background.gif | Bin 0 -> 83359 bytes .../mysite/polls/static/polls/style.css | 10 ++++++++++ .../mysite/polls/templates/polls/index.html | 2 ++ 3 files changed, 12 insertions(+) create mode 100644 pedro/django-tutorial/mysite/polls/static/polls/images/background.gif create mode 100644 pedro/django-tutorial/mysite/polls/static/polls/style.css diff --git a/pedro/django-tutorial/mysite/polls/static/polls/images/background.gif b/pedro/django-tutorial/mysite/polls/static/polls/images/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..60507ba73dfc3fc174b6d3943b384219b527abf9 GIT binary patch literal 83359 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 D#f9w7 literal 0 HcmV?d00001 diff --git a/pedro/django-tutorial/mysite/polls/static/polls/style.css b/pedro/django-tutorial/mysite/polls/static/polls/style.css new file mode 100644 index 0000000..4db5255 --- /dev/null +++ b/pedro/django-tutorial/mysite/polls/static/polls/style.css @@ -0,0 +1,10 @@ +li a { + color: green; +} + +body { + /* thanks: https://stackoverflow.com/questions/12605908/change-background-image-opacity/40366996#40366996 */ + background-image: url("images/background.gif"); + background-color: rgba(255,255,255,0.6); + background-blend-mode: lighten; +} diff --git a/pedro/django-tutorial/mysite/polls/templates/polls/index.html b/pedro/django-tutorial/mysite/polls/templates/polls/index.html index b1b7ea8..9ac8451 100644 --- a/pedro/django-tutorial/mysite/polls/templates/polls/index.html +++ b/pedro/django-tutorial/mysite/polls/templates/polls/index.html @@ -1,3 +1,5 @@ +{% load static %} + {% if latest_question_list %}