{{ post.title }}
-{{ post.content }}
-From e5023493b15a1d96ce788b4f3727b5c1620c8a7a Mon Sep 17 00:00:00 2001 From: Profeso1012 <140280311+Profeso1012@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:04:11 +0100 Subject: [PATCH 01/57] Delete Atom-Python/Test-Project directory --- Atom-Python/Test-Project/test-module.py | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 Atom-Python/Test-Project/test-module.py diff --git a/Atom-Python/Test-Project/test-module.py b/Atom-Python/Test-Project/test-module.py deleted file mode 100644 index 2d944efaf..000000000 --- a/Atom-Python/Test-Project/test-module.py +++ /dev/null @@ -1,20 +0,0 @@ - -class Employee: - """A sample Employee class""" - - def __init__(self, first, last): - self.first = first - self.last = last - - print('Created Employee: {} - {}'.format(self.fullname, self.email)) - - @property - def email(self): - return '{}.{}@email.com'.format(self.first, self.last) - - @property - def fullname(self): - return '{} {}'.format(self.first, self.last) - - -emp_1 = Employee('John', 'Smith') From d81eb465a11ccc399c4334d679cb736b2eee9841 Mon Sep 17 00:00:00 2001 From: Profeso1012 <140280311+Profeso1012@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:04:47 +0100 Subject: [PATCH 02/57] Delete Automation directory --- Automation/rename.py | 48 -------------------------------------------- 1 file changed, 48 deletions(-) delete mode 100644 Automation/rename.py diff --git a/Automation/rename.py b/Automation/rename.py deleted file mode 100644 index 00f106a8a..000000000 --- a/Automation/rename.py +++ /dev/null @@ -1,48 +0,0 @@ -import os - -os.chdir('/path/to/files/') - -# Am I in the correct directory? -# print(os.getcwd()) - -# print(dir(os)) - -# Print all the current file names -for f in os.listdir(): - # If .DS_Store file is created, ignore it - if f == '.DS_Store': - continue - - file_name, file_ext = os.path.splitext(f) - # print(file_name) - - # One way to do this - f_title, f_course, f_number = file_name.split('-') - - # print('{}-{}-{}{}'.format(f_number, f_course, f_title, file_ext)) - - # Need to remove whitespace - f_title = f_title.strip() - f_course = f_course.strip() - # f_number = f_number.strip() - - # Want to remove the number sign? - # f_number = f_number.strip()[1:] - - # One thing I noticed about this output is that if it was sorted by filename - # then the 1 and 10 would be next to each other. How do we fix this? One way we can fix this is to pad - # the numbers. So instead of 1, we'll make it 01. If we had hundreds of files then this would maybe need to be 001. - # We can do this in Python with zfill - f_number = f_number.strip()[1:].zfill(2) - - # print('{}-{}-{}{}'.format(f_number, f_course, f_title, file_ext)) - - # You have the power to reformat in any way you see fit - print('{}-{}{}'.format(f_number, f_title.strip(), file_ext.strip())) - - new_name = '{}-{}{}'.format(file_num, file_title, file_ext) - - os.rename(fn, new_name) - - -# print(len(os.listdir())) From 1059b4e1837e5f0c1bd872c4de21469bc751c92b Mon Sep 17 00:00:00 2001 From: Profeso1012 <140280311+Profeso1012@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:05:04 +0100 Subject: [PATCH 03/57] Delete BeautifulSoup directory --- BeautifulSoup/scrape.py | 37 ------------------------------------- BeautifulSoup/simple.html | 31 ------------------------------- 2 files changed, 68 deletions(-) delete mode 100644 BeautifulSoup/scrape.py delete mode 100644 BeautifulSoup/simple.html diff --git a/BeautifulSoup/scrape.py b/BeautifulSoup/scrape.py deleted file mode 100644 index 42a191f1c..000000000 --- a/BeautifulSoup/scrape.py +++ /dev/null @@ -1,37 +0,0 @@ -from bs4 import BeautifulSoup -import requests -import csv - -source = requests.get('http://coreyms.com').text - -soup = BeautifulSoup(source, 'lxml') - -csv_file = open('cms_scrape.csv', 'w') - -csv_writer = csv.writer(csv_file) -csv_writer.writerow(['headline', 'summary', 'video_link']) - -for article in soup.find_all('article'): - headline = article.h2.a.text - print(headline) - - summary = article.find('div', class_='entry-content').p.text - print(summary) - - try: - vid_src = article.find('iframe', class_='youtube-player')['src'] - - vid_id = vid_src.split('/')[4] - vid_id = vid_id.split('?')[0] - - yt_link = f'https://youtube.com/watch?v={vid_id}' - except Exception as e: - yt_link = None - - print(yt_link) - - print() - - csv_writer.writerow([headline, summary, yt_link]) - -csv_file.close() diff --git a/BeautifulSoup/simple.html b/BeautifulSoup/simple.html deleted file mode 100644 index d7ee20cba..000000000 --- a/BeautifulSoup/simple.html +++ /dev/null @@ -1,31 +0,0 @@ - - -
-This is a summary of article 1
-This is a summary of article 2
-There are currently {len(names)} public contributors. Thank You!
' - -html_output += '\nYou can put any information here you'd like. -
{{ post.content }}
-You can put any information here you'd like. -
{{ post.content }}
-You can put any information here you'd like. -
{{ post.content }}
-f@RSk2<9~+x9>x8X`!V+ev;!X?00e*l5C8%|00;m9 zAOHk_01yBIK;X$G;PcWn%aE-XZy68cr2~vH{(pnwe#X7U{fK+x$t@r#2LeC<2mk>f z00e*l5C8%|00;m9AOHji0md7k8NBi0jmPT^1cE4n3H>R>eTA!V0ki`jAOHk_01yBI zKmZ5;0U!VbfB+Bx0!N0xJQJWY+_TGcfEHsyY9f}J5L0|iniA7ff;1VIQ&LiruAmnU z@Y4G}5HVf?RE$jVA3*PP&`QNR+I^q-O#R56S6{uudJ10bGP>FAGBqV8C)0^!Oq2!U zQs9@i@B{mcy4J6Q;z(WK5LeVq9F*>WwAzW{uwN zjkiu 2 z0Rlh(2mk>f00e*l5C8%|;0O^I9`;f6$OU#s*LKNk*RHA+9v|@dePjF?6nk!*Mei!s z8d^KvI5aGtGc3$Esp3S~gK A)z@qH{?UT63GbnCs!cTHHUtZW2U>?6a zjBKKU-_&5UGG(;vP8)Wn5}TbV#th+yklnd)Kh|S2!jjCx@l(iRBIzTl%pn?n7kFEl z8OGzlODB=BaM@?d>o7MZIue{P5|}zW5|~=;38KeQf^pf01$S6u(RS0}L1a2|fg#HA z>lfRS@d3}F*mL8IDYX@EY9tmR!@|_ovM@#A!{>s?;_MiM#k8Wa3cUZW0TeeH^^)Az zYt`+ocJ|~b(vRZDCcI|;Z3|O?VROu|F%`6JObO(8IDl+ME_ktqwgDDF4leeg*m222 zR9LSpZA-C&o@bHerKHEyV?|(FQ yx*`km01zk+LUJnzT1baqk;!(v_i2d7HWl@ zXM9xPf H21DH>rtvN#5M4?o_Lyy3xqTcXlh~HDmmb*8gE8|BzI{3 7M{GtDKy@q}&WB%%&zgn#{&`tZJ_Mh8} zQ}F~ESaV;e{Le~~*H57>Z9ITraYL^a`IqsJZQN2yQ!yDmVZf92;6xcCXYrPXe)Zu@ z<;)HZ;>Gl2N>0UNGQx1Vom4Qy_RP;zI++$yiC7x1|9iO~8qfd#;XBV0JOTkA00e*l f5C8%|00;m9AOHk_01yBIzXSsK-G3hI`Tze5f+k|Y diff --git a/Django_Blog/05-Database-Models/django_project/django_project/__init__.py b/Django_Blog/05-Database-Models/django_project/django_project/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/05-Database-Models/django_project/django_project/settings.py b/Django_Blog/05-Database-Models/django_project/django_project/settings.py deleted file mode 100644 index c5d59b13c..000000000 --- a/Django_Blog/05-Database-Models/django_project/django_project/settings.py +++ /dev/null @@ -1,121 +0,0 @@ -""" -Django settings for django_project project. - -Generated by 'django-admin startproject' using Django 2.1. - -For more information on this file, see -https://docs.djangoproject.com/en/2.1/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/2.1/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.1/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'exhlfdat&vfum(-34*c2uroi(($ww(yo$9pv98=e6p^gl(-eoj' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = [ - 'blog.apps.BlogConfig', - '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 = 'django_project.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 = 'django_project.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/2.1/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.1/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.1/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.1/howto/static-files/ - -STATIC_URL = '/static/' diff --git a/Django_Blog/05-Database-Models/django_project/django_project/urls.py b/Django_Blog/05-Database-Models/django_project/django_project/urls.py deleted file mode 100644 index 0ba084517..000000000 --- a/Django_Blog/05-Database-Models/django_project/django_project/urls.py +++ /dev/null @@ -1,22 +0,0 @@ -"""django_project URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/2.1/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, include - -urlpatterns = [ - path('admin/', admin.site.urls), - path('', include('blog.urls')), -] diff --git a/Django_Blog/05-Database-Models/django_project/django_project/wsgi.py b/Django_Blog/05-Database-Models/django_project/django_project/wsgi.py deleted file mode 100644 index 14bd24ed6..000000000 --- a/Django_Blog/05-Database-Models/django_project/django_project/wsgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -WSGI config for django_project 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.1/howto/deployment/wsgi/ -""" - -import os - -from django.core.wsgi import get_wsgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.settings') - -application = get_wsgi_application() diff --git a/Django_Blog/05-Database-Models/django_project/manage.py b/Django_Blog/05-Database-Models/django_project/manage.py deleted file mode 100755 index 6b39db5c2..000000000 --- a/Django_Blog/05-Database-Models/django_project/manage.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -if __name__ == '__main__': - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.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) diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/__init__.py b/Django_Blog/06-User-Registration-Form/django_project/blog/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/admin.py b/Django_Blog/06-User-Registration-Form/django_project/blog/admin.py deleted file mode 100644 index 47f03fdd3..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/admin.py +++ /dev/null @@ -1,4 +0,0 @@ -from django.contrib import admin -from .models import Post - -admin.site.register(Post) diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/apps.py b/Django_Blog/06-User-Registration-Form/django_project/blog/apps.py deleted file mode 100644 index 793058786..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class BlogConfig(AppConfig): - name = 'blog' diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/migrations/0001_initial.py b/Django_Blog/06-User-Registration-Form/django_project/blog/migrations/0001_initial.py deleted file mode 100644 index 1f3340495..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/migrations/0001_initial.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 2.1 on 2018-08-28 02:32 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Post', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=100)), - ('content', models.TextField()), - ('date_posted', models.DateTimeField(default=django.utils.timezone.now)), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - ] diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/migrations/__init__.py b/Django_Blog/06-User-Registration-Form/django_project/blog/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/models.py b/Django_Blog/06-User-Registration-Form/django_project/blog/models.py deleted file mode 100644 index f34277c7c..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/models.py +++ /dev/null @@ -1,13 +0,0 @@ -from django.db import models -from django.utils import timezone -from django.contrib.auth.models import User - - -class Post(models.Model): - title = models.CharField(max_length=100) - content = models.TextField() - date_posted = models.DateTimeField(default=timezone.now) - author = models.ForeignKey(User, on_delete=models.CASCADE) - - def __str__(self): - return self.title diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/static/blog/main.css b/Django_Blog/06-User-Registration-Form/django_project/blog/static/blog/main.css deleted file mode 100644 index 06c3af5f9..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/static/blog/main.css +++ /dev/null @@ -1,84 +0,0 @@ -body { - background: #fafafa; - color: #333333; - margin-top: 5rem; -} - -h1, h2, h3, h4, h5, h6 { - color: #444444; -} - -ul { - margin: 0; -} - -.bg-steel { - background-color: #5f788a; -} - -.site-header .navbar-nav .nav-link { - color: #cbd5db; -} - -.site-header .navbar-nav .nav-link:hover { - color: #ffffff; -} - -.site-header .navbar-nav .nav-link.active { - font-weight: 500; -} - -.content-section { - background: #ffffff; - padding: 10px 20px; - border: 1px solid #dddddd; - border-radius: 3px; - margin-bottom: 20px; -} - -.article-title { - color: #444444; -} - -a.article-title:hover { - color: #428bca; - text-decoration: none; -} - -.article-content { - white-space: pre-line; -} - -.article-img { - height: 65px; - width: 65px; - margin-right: 16px; -} - -.article-metadata { - padding-bottom: 1px; - margin-bottom: 4px; - border-bottom: 1px solid #e3e3e3 -} - -.article-metadata a:hover { - color: #333; - text-decoration: none; -} - -.article-svg { - width: 25px; - height: 25px; - vertical-align: middle; -} - -.account-img { - height: 125px; - width: 125px; - margin-right: 20px; - margin-bottom: 16px; -} - -.account-heading { - font-size: 2.5rem; -} diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/about.html b/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/about.html deleted file mode 100644 index a6c3b90b6..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/about.html +++ /dev/null @@ -1,4 +0,0 @@ -{% extends "blog/base.html" %} -{% block content %} - About Page
-{% endblock content %} diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/base.html b/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/base.html deleted file mode 100644 index 66e6216c9..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/base.html +++ /dev/null @@ -1,77 +0,0 @@ -{% load static %} - - - - - - - - - - - - - - {% if title %} -Django Blog - {{ title }} - {% else %} -Django Blog - {% endif %} - - -- - -- - - - - - - - - diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/home.html b/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/home.html deleted file mode 100644 index dedc49aaa..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/templates/blog/home.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "blog/base.html" %} -{% block content %} - {% for post in posts %} ---- {% if messages %} - {% for message in messages %} -- - {% endfor %} - {% endif %} - {% block content %}{% endblock %} -----Our Sidebar
-You can put any information here you'd like. -
-
- -- Latest Posts
-- Announcements
-- Calendars
-- etc
-- - {% endfor %} -{% endblock content %} diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/tests.py b/Django_Blog/06-User-Registration-Form/django_project/blog/tests.py deleted file mode 100644 index 7ce503c2d..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/urls.py b/Django_Blog/06-User-Registration-Form/django_project/blog/urls.py deleted file mode 100644 index 2f2d16901..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/urls.py +++ /dev/null @@ -1,7 +0,0 @@ -from django.urls import path -from . import views - -urlpatterns = [ - path('', views.home, name='blog-home'), - path('about/', views.about, name='blog-about'), -] diff --git a/Django_Blog/06-User-Registration-Form/django_project/blog/views.py b/Django_Blog/06-User-Registration-Form/django_project/blog/views.py deleted file mode 100644 index 12fca8f21..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/blog/views.py +++ /dev/null @@ -1,13 +0,0 @@ -from django.shortcuts import render -from .models import Post - - -def home(request): - context = { - 'posts': Post.objects.all() - } - return render(request, 'blog/home.html', context) - - -def about(request): - return render(request, 'blog/about.html', {'title': 'About'}) diff --git a/Django_Blog/06-User-Registration-Form/django_project/db.sqlite3 b/Django_Blog/06-User-Registration-Form/django_project/db.sqlite3 deleted file mode 100644 index 298e3d759d33f25c9e725ec8b88bd5c859c48c40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139264 zcmeI5du$uYeaCmnC0DdWuKeWP**;OUl{2H0%zg18=g^}qS|^`GS+ZnFP7d28xuRC$ z%X~-- -{{ post.title }}
-{{ post.content }}
-1U8OTQ6Y)+z $)wBpm{|rx zyrHDasE@~>CB7>OE<&3QBz}CD^}mF~&mSb-@Pu@yc_ExhZ^V1+K6)tKUC!<&xtRc| z-Q))R4QHI*A32oVw!$jmOjZ=+bl7S)U4(}Fww^9it34i&%Y7=NRWj6|+Pt8mp7)`O z8E>l?n@OfrtZBuXQrjzQxIqaUQZ%ATX;Lwk9oM5qtXQR=7h8>3*0}X_BtSA3y{vz4 zoZcU_D#S|Cl|iPI)rx9CQ^LHO7NfFi)rFPH*S8WZn?riG_*+SPl>_l_N(+Ye*M?Ys zB0=A~R8!M=qmPoFPd1jLs&$I!jPaU9SWaA?OWMyRorYKpI*9~yRGm4k5=bp92U06@ zbAjtiv-63i^}vhC^*~}}d0{q%T+Sy`%SbA5(lgak@@jG^nYxm^VawFaBNUj%u}ehK zY-)CSHZeE1ZU!c&yP9CPrY`Rmi^Js++7A!1{)q|t-ti8!q$k*b8plKZFdEU16ueen zJ_I*ndq`xjyx+t6M@HyZ&$T0KHNGQ#AUzPBvRbX~mMW-4?x>Z_rdqkc3$akES)xXg zSF1H8U&`slU?8j3w3=Sf?D2Y4sn$`$z>PE*NS8`^dn^vcCjiU87`EJ--`Xgb4ZVW0 z>2KK-a-fA)Q1!f(Q&hHcLg}&4n!2&kEfU43nVP P2>giGQT}BVo z3=A)aJH-&&!!>3^-6|BmcsfL1u@W3Ek5FUS&H6`2>Be>kP{N$3W&449AXx2fFxK6k zLn7<;&x{_}EDYjCyCC}m=sFtzqxR3cSpWDq{mMtJ@>ozvp{zr9kCIujZ$t59Tk%kJ zc3u!1T%p-5wU{fleRm(OQb|t6rGwR<`LIn(sBx8H{UwoZ?2^vcBP&HMmzBJl*78aL zU5DhAXe6B#vtpWDg!D+@GGVrjC3@H$?3i4G^hkwE-cp2z6hsudq{=y2zbMlCbyD9w zQuYX9+UvcC#oJK#ZNQOWOTG1NVXu=`nR-Wut~=bgVXu>NnrF+ZcDt?>Gg`-?v#op` zkr!|ed={k)HP&g?fAJ!{uiDua^jt-);bEA`#R_n=`3-i(KM*y<#cHL3-2S!Gezxe0 zMM?8|*LMp#3!FURMcd)QH!1EfxleIfZq)Z3-|zY^d;iD#Rqw7>8v4=D=Z9_%jUog1 z00AHX1b_e#00KY&2mk>f@SY=Zao9zj9809pTw6FC<`uoD*K{>6g!$M+I5r`~0%2iF zj7~|hNiiaYMOoxr)Y-8_RWp{H`X%D0WN}IqCL_EMjYMXAD3_H4o<=|k;) BO2IBJ-{H^CZM2fq%j6qQ+(t z=Ijr_h$$kzh0;z7udzCXTToBD2zp$ab-5@%(v&UeMdU)nQ_E;!tFlMx8BfEOipoY_ z%_*79l8)vDdb$dWk|ZV= I)k-lw zCdDs05L1-G=syQ1h@y&&Mrnj@tP|bA31vx$M7-Q5C^wgPazEz&fy;AWK(hefe9xWK zKrj#h0zd!=00AHX1b_e#00KY&2mpach=AYa6zLu}QLx-sDD=P2gJ }KxPRfk&b`e25%)Wf5Hyei1b_e#00KY&2mk>f00e*l5C8%|;Jr@3%bYw( z2JU#w&z@k;o~E1k*_eObXPB{bwEd0<+rEpW$I}F4mcYlH^pjZv@=G7*apvSGIke^s z97h@dSr3^LXx f00e*l z5C8%|;B6u>#4^;$lX&4CkN=Om8S3omj`9C#7ekGmvyJ(yw*4Unr*Dq`y-sxG$46xR zf6RdnNAaOG{y$1Hl>cno_#dzTpYeX5;(m%&|G&k3iTf<~F|NR^ax BS868-b=HGw>Ag?#8~%kdvnvdV+QlceZiti6 lei$m z=pjPDY5E{RgGP|)gajQSIXkfza_k}c9K?+^{2uT#^hMfX`m(}VBiwXog}Vt=2li?O zx{fiPXK3QNxrWc2U_9fr>9!f@B!Q;SW}su3@r f00e*l5C8&?F#){(599yGxPqZ*KmZ5;0U!VbfB+Bx0zd!=00AHX1P}pO z|A%G(1b_e#00KY&2mk>f00e*l5C8%|;PEGb$N!A?%M^Fr_qs2McHjd9fB+Bx0zd!= z00AHX1b_e#00NH?fyNNyr5Yh>;H-Ciz?1Nn)7#k%L8)%4f*d)|3+SEq;qw_Od8Kyi z+T3DEzi~cwW$R8&TF=hhdf{q3Q!mG**;|$I$jy?rwOPM*b75|Y&rUDjd@-KPJeSgT zSI}?ah181he5O<=tHr%Z^w;)+dp >5eex|Z@xu6#3TWZ35Y$6<+ z5Mlw8yC_eEg~>=H#!FJ;h@%NZ9`K00VdTq~m&Mdv^hTwyeO^ i?dQD zUcZ}3+)giD9$#BqUCVD@-dkA{R`PQf00e*l5a>++-~WGxdx_$H&Ar9_oO^@&5%&Y`U%7um zzXkX!?se|#+-uyQaeu;nf%`o78SeMF-{U^cHMkFRb*{weTm~hC4-fzXKmZ5;0U!Vb zfB+Bx0zd!=0D=GS1YAy 0V*&ZX?qj<{< zlPyQKKC<=Vt#gQM2g&vb*?RESF+jE~*}BQr#W+1QgEvmRaX6hG4_^Owc<)iZZ=el) zfB+Bx0zd!=00AHX1b_e#00KbZ9VM`T$>Ey6=StkUo0saj%H7-bJC&Fg%ax1yLN?4- z_`C5~A-r*WVR=(eZ7m9^<(1vkRyKcYbzV;0y|z8SmD!!2&Tq|cUE97@n7^~IdMm#$ zv$8jT_p*L#xg4F%$2YTUOQkjO=G|Ls*EZDEMSVe^y)&!t>TAMPK0C9ykzGsWGx@l_ zzM87sT9vnFw@Ui0net}3klmRpq;}H9r9E|Zw!Xf0Gpt^bTXvZ}Ih7Wc^6BKY&2^!c zPZt*TxhvN;h~3pVpAl~EtqGf(86k)AyjGZBy}FI^*iH$^esz&Y+U51TEAqOqq^Fh> z;nddUeCqBdD%-lezO{Y#*7PlXwiq^_d>5bKdGqmq f00e*l5C8%|00;m9 zAOHm31p+Yse-|J_7C-<900AHX1b_e#00KY&2mk>f00bT~0WbR&<#m=R?!52s2QLhM z)$?8VHwS)eXxx3uwa$EoaXZWSKgSCFY3h4avX9uoH{BogFHF!4UN2^~J8HeQsnn}l zMafl4^>WqN*Rx7Q *$>h%IZCf?loarD9dF_HhwnQbx|i1&s*nGCtM=a+gsbk2c_4Nig;{ z9Z3B6FzbH_iJw16yx|GyPV+)IlirB;)_wF)y1Sg+PjWK>QoG3w_#4hRy+3j&xow42 z!kMfn$my`vZn_8!+geZK_zBj(h}xxW YY7k$m~JOiOX}z-d`h# zK|n9ow47E6q!yL~sg=38!1bls`NYzC;Kk&6AhEK%Fq=Y-=98&qbmAu2^-Q&tyqa7} zrmiG!*s{XC4|5Jo uf)AlcfZaH0!Nq0V+=aA rFK6?SF+BO)t2L~7;m4Px(qwAez+B56%BWoCJswe zSM68{4p~KmZ&J@KglLL 6reACJ@bqE@|h zeJ_zTU7?;H_0eVYKy_hwIUFuxdpJ_4n^ s5y2upb$mTU-O4T z^s5sV9de4tovppA^*d22*z|#FzN}WOyQK9GHD{hTtJ>|lR?KJ}ht9Sh z+YxyIm+M)SGSpb7S^ve0^u9`bX1CO0uA~(7Tt%(nVOUpyqs?!yEB=9+g<39K90j=@ zWP2TS#-gNoy*Djb|L-%W0l`232mk>f00e*l5C8%|00;m9AOHj&BLZIfbJQ_vhw>B$ z{+#^}H|1JkzTy0(bAsA&tkYi_dcXHOgVNv|M?UNOfloulzS5)U$b*<1IdC45%$-?t z)Fb<2V`TR69&OF9Srd63vyV@=&!%+5KG0lBri2!EiZ!LSSJv)7V{Fdf*b|w#-hTln zQ_5=XlQVqSHrs~g(As0$rfxz 9h1`ZNQFz(QiSKZi6~T%*>kL46zToA zeMZw>hdrFR+WTP-3$s^ruZA78bZY6d=DRz(h@rZ7G`e>oV83_4l%-}1dJ)f&w-)s? zazxV7YNXTPOnXo0jP6Qrbb(GYTy%1l!^^sj3nQ#wK{t6U+S`dG$qpL#(TtSNXfZ9_ z>Gbq{r1kUDUt&j!VCa?1(`4=Z)jfMlXi4o fq=)MEIh|yy{A2r%i zdP~dH$a%V^-Kmk)cq_P~mC+(cbE!n=XgX;1teDf3f>y1nIpp7PU@qyC&fV{u05AF5 zS8+`gc7kSc@Bb~(Y#H4>!=6KHVd>C*@e&C_w~<$K!9ca3=JV*Tg+RSn)pKZdq_yZ1 zYFzW96IX(6+_p}}L=)LqXTZ)o%J_|RTHX*cEoEJc@=vul(f)=V3w2G;wl9>Pf-nk8 zA8rGoM(h;p&!EDr->)zxc14ZLnwsTp_Z@bY`^iHWqtoYM3Sg!|((5PDt!ADCy+3|f z?QMlucu9? 9L;b^H9+Txa+NP zBEtG_gy=@xejcr&zKmPFcBiaYG=(e&s&XbGL?WWuNllYLd#$!d_DtV)<}|(FqS^97 zwHT3DygI!9jQyNxTDNDynF`E%joKrz<7Q#DwLR-3CfTkK?YAAF^HtLxm0ImSo7rXd zSQ@<~yZ!xdDQOp{@a@MVuY?4a+%hz3U9;mFZ#AoaE8)19J#YFr=&ImB7s1h48&UdA z7r=ShPTc4<$ju>Ez&qBr1zCEh7r2owvi{#bZfGk(h!@@d-)u-Wh{hHl>fbh6l}v7H z=)B!%1l=$36>`5ssJ(3vYqfqi#$q{*v!olR@l{#5gzhcCUP~2x1(eN3)tD5MTXDhm zuG f00e*l5C8%|00;nq9t2?g-vbH+0RbQY1b_e#00KY&2mk>f00e*l z5O~Z8;PF4h{g~o@#r=Z&DcXS#5C8%|00;m9AOHk_01yBIKmZ5;0U+?+CE#+>G|P~! z6K@#@ Rn G60`1mpWM#eIV-avrn;A0Pk(fB+Bx0zd!=00AHX1b_e#00NH;fknnc zCAcS7X%8)g`Pf7_HX+0UVR1@`Px0cUB*(<4C|*V{8VHCV{BY2C2~ajT75FfEr-PQy zR?+SU&1dQdUwZlFmsm%}iCu=ayIsbngy>{E5)BJ7Ph9eWl`?){f40AC<2?ZAx&6&2 z{u`MrIdCRtS2{8gro#M`5Sa`Mq9jPdvR19Fpf_vucW=CP0{dhfAE1fPaoXdtv*4#> z#6p P5(-=y!D z_f7BLdB5oWn0MKGZs?ao|2XugL-&S$duVznI7Fd@@Bsoq00;m9AOHk_01yBIK;RJ~ zaORAQqDP)#cXVx+ymsx1S`6TW0Dj+C;53RoH_oDW6>BxE6>l6G7Ec)#=9^S;BJ9C9 zBo M6juvwWhns%oQJ5!0x z&J<&Y1WqEmbK`ET$7X~jnTO*iki|sQMO2wXH2f~`mNGLefCDccN5=dmmnpBq+?3ds z;FyuX)Y*~1)M`%{|+;zmPGl6$UFs+U{YlcV4uiXWSBn)$aZ zOaX??5yQq*(6TWlkmEBRWHa)N6KiN0U=ift!T^dL7ac@}^~%zg6f5Xi7Fk}5I!rxQ z1hzFrS%J^G4Qo@G6@jfyc~;>2T*x}aJFrG86q{n9R>*nAMR}g#iC8otfnGab*=tF~ zGZZA`f)iPd%cfAfohj3@bP!8Zq}|e#*s=`L$a3r=7HBua@>(|d{(lGe8Xo_@_6VJ{ zKnf550zd!=00AHX1b_e#00KY&2mk>fKvCzN^Yop&d8wYO+`V1DQ;BJ@T)CJpWW#)g zzZ;Jg!W*|8=bZDN{ARikuWpBTqneNwi`xA z00AHX1b_e#00KY&2mk>f00e*l5O`z>Jnc-Fzk-NQ@O*%eO^Nc9AWz2PF+L_b&N>t3 z4+BUv`lW#^Pw~=ZG$IK?+{-OcPHvduhPh92E01g$K^PDK0zd!=00AHX1b_e#00KY& z2mpb%mB4efn+nB6Px}x3uj&=_QyKGD|A8x|Vh!E2KWhKEy)Y$3(7>Ae7Uh0Y6rFAg zZE52H1k0OxB^$Voe{9n$r8pHv!}X{m?!bu>M$W ;NCu4F<3d@MV zrB+hj5ZgCDQ|V-!k43_9y#DXxer7!X|7UM2N^k}QfB+Bx0zd!=00AHX1b_e#00KY& Q2s|tT_}zaF>-qox2Ya(LjsO4v diff --git a/Django_Blog/06-User-Registration-Form/django_project/django_project/__init__.py b/Django_Blog/06-User-Registration-Form/django_project/django_project/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/06-User-Registration-Form/django_project/django_project/settings.py b/Django_Blog/06-User-Registration-Form/django_project/django_project/settings.py deleted file mode 100644 index 8df8664b7..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/django_project/settings.py +++ /dev/null @@ -1,125 +0,0 @@ -""" -Django settings for django_project project. - -Generated by 'django-admin startproject' using Django 2.1. - -For more information on this file, see -https://docs.djangoproject.com/en/2.1/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/2.1/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.1/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'exhlfdat&vfum(-34*c2uroi(($ww(yo$9pv98=e6p^gl(-eoj' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = [ - 'blog.apps.BlogConfig', - 'users.apps.UsersConfig', - 'crispy_forms', - '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 = 'django_project.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 = 'django_project.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/2.1/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.1/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.1/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.1/howto/static-files/ - -STATIC_URL = '/static/' - -CRISPY_TEMPLATE_PACK = 'bootstrap4' diff --git a/Django_Blog/06-User-Registration-Form/django_project/django_project/urls.py b/Django_Blog/06-User-Registration-Form/django_project/django_project/urls.py deleted file mode 100644 index c43a4a5c6..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/django_project/urls.py +++ /dev/null @@ -1,24 +0,0 @@ -"""django_project URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/2.1/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, include -from users import views as user_views - -urlpatterns = [ - path('admin/', admin.site.urls), - path('register/', user_views.register, name='register'), - path('', include('blog.urls')), -] diff --git a/Django_Blog/06-User-Registration-Form/django_project/django_project/wsgi.py b/Django_Blog/06-User-Registration-Form/django_project/django_project/wsgi.py deleted file mode 100644 index 14bd24ed6..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/django_project/wsgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -WSGI config for django_project 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.1/howto/deployment/wsgi/ -""" - -import os - -from django.core.wsgi import get_wsgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.settings') - -application = get_wsgi_application() diff --git a/Django_Blog/06-User-Registration-Form/django_project/manage.py b/Django_Blog/06-User-Registration-Form/django_project/manage.py deleted file mode 100755 index 6b39db5c2..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/manage.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -if __name__ == '__main__': - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.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) diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/__init__.py b/Django_Blog/06-User-Registration-Form/django_project/users/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/admin.py b/Django_Blog/06-User-Registration-Form/django_project/users/admin.py deleted file mode 100644 index 8c38f3f3d..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/users/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/apps.py b/Django_Blog/06-User-Registration-Form/django_project/users/apps.py deleted file mode 100644 index 4ce1fabc0..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/users/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class UsersConfig(AppConfig): - name = 'users' diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/forms.py b/Django_Blog/06-User-Registration-Form/django_project/users/forms.py deleted file mode 100644 index 0989ffa73..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/users/forms.py +++ /dev/null @@ -1,11 +0,0 @@ -from django import forms -from django.contrib.auth.models import User -from django.contrib.auth.forms import UserCreationForm - - -class UserRegisterForm(UserCreationForm): - email = forms.EmailField() - - class Meta: - model = User - fields = ['username', 'email', 'password1', 'password2'] diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/migrations/__init__.py b/Django_Blog/06-User-Registration-Form/django_project/users/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/models.py b/Django_Blog/06-User-Registration-Form/django_project/users/models.py deleted file mode 100644 index 71a836239..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/users/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/templates/users/register.html b/Django_Blog/06-User-Registration-Form/django_project/users/templates/users/register.html deleted file mode 100644 index 1ab82fa16..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/users/templates/users/register.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "blog/base.html" %} -{% load crispy_forms_tags %} -{% block content %} - - --{% endblock content %} diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/tests.py b/Django_Blog/06-User-Registration-Form/django_project/users/tests.py deleted file mode 100644 index 7ce503c2d..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/users/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/Django_Blog/06-User-Registration-Form/django_project/users/views.py b/Django_Blog/06-User-Registration-Form/django_project/users/views.py deleted file mode 100644 index ee22e2fda..000000000 --- a/Django_Blog/06-User-Registration-Form/django_project/users/views.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.shortcuts import render, redirect -from django.contrib import messages -from .forms import UserRegisterForm - - -def register(request): - if request.method == 'POST': - form = UserRegisterForm(request.POST) - if form.is_valid(): - form.save() - username = form.cleaned_data.get('username') - messages.success(request, f'Account created for {username}!') - return redirect('blog-home') - else: - form = UserRegisterForm() - return render(request, 'users/register.html', {'form': form}) diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/__init__.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/admin.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/admin.py deleted file mode 100644 index 47f03fdd3..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/admin.py +++ /dev/null @@ -1,4 +0,0 @@ -from django.contrib import admin -from .models import Post - -admin.site.register(Post) diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/apps.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/apps.py deleted file mode 100644 index 793058786..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class BlogConfig(AppConfig): - name = 'blog' diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/migrations/0001_initial.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/migrations/0001_initial.py deleted file mode 100644 index 1f3340495..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/migrations/0001_initial.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 2.1 on 2018-08-28 02:32 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Post', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=100)), - ('content', models.TextField()), - ('date_posted', models.DateTimeField(default=django.utils.timezone.now)), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - ] diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/migrations/__init__.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/models.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/models.py deleted file mode 100644 index f34277c7c..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/models.py +++ /dev/null @@ -1,13 +0,0 @@ -from django.db import models -from django.utils import timezone -from django.contrib.auth.models import User - - -class Post(models.Model): - title = models.CharField(max_length=100) - content = models.TextField() - date_posted = models.DateTimeField(default=timezone.now) - author = models.ForeignKey(User, on_delete=models.CASCADE) - - def __str__(self): - return self.title diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/static/blog/main.css b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/static/blog/main.css deleted file mode 100644 index 06c3af5f9..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/static/blog/main.css +++ /dev/null @@ -1,84 +0,0 @@ -body { - background: #fafafa; - color: #333333; - margin-top: 5rem; -} - -h1, h2, h3, h4, h5, h6 { - color: #444444; -} - -ul { - margin: 0; -} - -.bg-steel { - background-color: #5f788a; -} - -.site-header .navbar-nav .nav-link { - color: #cbd5db; -} - -.site-header .navbar-nav .nav-link:hover { - color: #ffffff; -} - -.site-header .navbar-nav .nav-link.active { - font-weight: 500; -} - -.content-section { - background: #ffffff; - padding: 10px 20px; - border: 1px solid #dddddd; - border-radius: 3px; - margin-bottom: 20px; -} - -.article-title { - color: #444444; -} - -a.article-title:hover { - color: #428bca; - text-decoration: none; -} - -.article-content { - white-space: pre-line; -} - -.article-img { - height: 65px; - width: 65px; - margin-right: 16px; -} - -.article-metadata { - padding-bottom: 1px; - margin-bottom: 4px; - border-bottom: 1px solid #e3e3e3 -} - -.article-metadata a:hover { - color: #333; - text-decoration: none; -} - -.article-svg { - width: 25px; - height: 25px; - vertical-align: middle; -} - -.account-img { - height: 125px; - width: 125px; - margin-right: 20px; - margin-bottom: 16px; -} - -.account-heading { - font-size: 2.5rem; -} diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/about.html b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/about.html deleted file mode 100644 index a6c3b90b6..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/about.html +++ /dev/null @@ -1,4 +0,0 @@ -{% extends "blog/base.html" %} -{% block content %} -- - Already Have An Account? Sign In - --About Page
-{% endblock content %} diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/base.html b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/base.html deleted file mode 100644 index 69421c852..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/base.html +++ /dev/null @@ -1,82 +0,0 @@ -{% load static %} - - - - - - - - - - - - - - {% if title %} -Django Blog - {{ title }} - {% else %} -Django Blog - {% endif %} - - -- - -- - - - - - - - - diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/home.html b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/home.html deleted file mode 100644 index dedc49aaa..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/templates/blog/home.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "blog/base.html" %} -{% block content %} - {% for post in posts %} ---- {% if messages %} - {% for message in messages %} -- - {% endfor %} - {% endif %} - {% block content %}{% endblock %} -----Our Sidebar
-You can put any information here you'd like. -
-
- -- Latest Posts
-- Announcements
-- Calendars
-- etc
-- - {% endfor %} -{% endblock content %} diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/tests.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/tests.py deleted file mode 100644 index 7ce503c2d..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/urls.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/urls.py deleted file mode 100644 index 2f2d16901..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/urls.py +++ /dev/null @@ -1,7 +0,0 @@ -from django.urls import path -from . import views - -urlpatterns = [ - path('', views.home, name='blog-home'), - path('about/', views.about, name='blog-about'), -] diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/views.py b/Django_Blog/07-Login-Logout-Authentication/django_project/blog/views.py deleted file mode 100644 index 12fca8f21..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/blog/views.py +++ /dev/null @@ -1,13 +0,0 @@ -from django.shortcuts import render -from .models import Post - - -def home(request): - context = { - 'posts': Post.objects.all() - } - return render(request, 'blog/home.html', context) - - -def about(request): - return render(request, 'blog/about.html', {'title': 'About'}) diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/db.sqlite3 b/Django_Blog/07-Login-Logout-Authentication/django_project/db.sqlite3 deleted file mode 100644 index f86e3957e78c7bef7363f676e55f8172030fbc1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147456 zcmeI5du$xZednj=JtSv}dhP74#ATBrR~mCk^>ZH7EzToxq@_d-MT!(fCW}eWOp|PK zUYr?{A|1mRuIvO!{8x}536MBI68Mkg568HRfpdHa);5AT$QgH+#CbRYk^p%C=d6>1 z;{%)vQdQkO-SeVoZFaTR{svO9yXsfJ`qrnatGlXurtdG#X?2y|C|8S0ofRE}4u)}j zlw} z{HpgW9?ktTu77m7oGZ-FIsT-VqwhDq@%mX`cxRGnl(kY`eWdKww=#P*wVK(imiH<( zeOt@xyBWNZkVKiwak-- -{{ post.title }}
-{{ post.content }}
-emX;rVjUA=pu$s|GWBQCQyqRDciltvqt*F(aR;y{{QY~X`lPbieoSaJtDlMeL z_^eR}UA(TO!>EVHQA>PB7E*;49a#LtpfCI;7C(QIc-<4$o#h2Cm)%Ho*L~(xx;vab zNwS#%tKCBWaKn{gj)zYrx23WfE|(VtIm=o7ri0L6&)(BvYW2qxN_j$KG;4-CRErl} z)v*w6n2DB#v6 5ObQF*)=hc!@R5Ki}WW|`QSZ!hD3iWIR%jT4xE&f*4ZuP+YO=+W% zT7RXio_mRaj2mm`mBml6FHP1`i^vhMRL!t+MHb zWj4JsH^<&vnw?KBt+97gYix35d0{q Q-tgmA;v}Z!6R&Bf`#* z)FmouHa)vMo1B|lGa^$n9bK?fQ-^np#p%k39CQ7?@Z==(_*@%WdL-C@>iYw|FzU%4 zD0t0d`4rr!?J1GH^^t%tJUq;N>T)ZxX6Nhc0qLpeRFqonpj^d0a$l+Dwv_5sUWiAU z-4b__f>Ntz3gu0$G|J|cx?0zYsy$t+Womo4V~|cd%4W;uf<2YQk^#W-FLIW9 A{sc~i-U#X}VQAhP7 ze4jU*8fF}HFs$ts@C922H Of1LLF!ifa)IA*o4-j}SSOFu9=Vgp@T zzQgFLx`FQHbVCfaJzZzU)U8U9i>Ff@D^`Znl@VzSdVS%M5vH-z29z?VYJI)HJr%6h zJ{a%p&k@n*4c{I)v0LcG^?pIO{rEbX{C6CWd3@oC3FfU&SoN`>&`Mdm-Yzw>QvU<0 zC)=uro3s6b;N%9)Z!4wEa?82 Z5*cJE^GAJFzKz_DOUy>+&*w@I^3-IF8toL -RdNKrhI2+5Ym6^^?HY5e*x41e&8ku-(=daJ72$00JKB-{RMapRtCtFL z>uINTv}jMoSqoanxdo2`7hVbC@J#=Icc9-zKa28cB=pCjp9 f00e*l5C8%|00=x&0^AvoBRrlY>t8jF X{4&hQ(l4KbHXGmm}LLJ|FqbtmGrH@QkGDYQ4rl6KK>svOt zT+ #iQ~^1K7uH(}!gD(PUGu)Vo(CD)BM#rXPElH$8}U4|J9D zNoXaWkBV>ju#;8OiC{RfmWSwi>ytbQ2}$7J@Om8Mx0A-|55-6*V!p-leiN^LcZ&3& zu6Qx@gf#2H#|74uFKQ+1LL^Je_{LWCkhU{fhAo#e8wF)EliMn5cwL~YD^8RoG3myx zFlED)V7W46;Z9yAZo9dV5<* y@(_g|{Wk~x7YdM7xlE;8s|N>M!wh{0 zhj{Ru^SUPVU29o|#VGm$)LSr!t($pW=UuKzvlzPOK$a}}E- f z00e*l5C8%|00;nqrywxscRRut=@S9Q{C~jbc3ikXZrqdk|2ePQF?6wQ{(sTqc8p)P z&G~D#?EyE*Z_fXNF1!~edvyMP)`@pV$gVa2Kf_=NLoM@va{r$Ve%gWF!FT_^iaw8i z5q%OB(JH!)Bs78s5fgeR^cSH&2z?>+OQBDON}(SP-3|$%;m~04--7=q_|4$gg8w!6 z%h&;YfB+Bx0zd!=00AHX1b_e#00KbZ^aRejnQ_Lyuc-&-Gvn-eHxps}_;&?W{G*@7 zym45M#6P53+H6L?a>mVEX8h!L3=Fd& yu?keeA| zeAElxeTgdaQWwU|^hH{@*YILQhV@9pkrDX<_3kCUjF<~AxS2`DL*3ctvFBfOGd$xl zT-p-O=?R8gTf*53Zf1h<5ZAWYGql2P>YmKA2dMzJ;g`f9J;rcIVnVdSZsLjT1_#~D z2;-tI=rnqO5^xzlXjH!*WjLWxeY9j3@j~|lRG*W&v8Lbtu$#HYI1OJ`yiboe99r>S zO4UicT9KZ!?!Xm>dN%LjyU)7=6O7^3jC9dR!>1YP9CQc9@dE()=C2r#`~Uby|KS4! zfB+Bx0zd!=00AHX1b_e#00KY&2t3CG$o+qq|3AkK3{?XHKmZ5;0U!VbfB+Bx0zd!= z00AI?3Bdh-=mtOl2mk>f00e*l5C8%|00;m9AOHlOe*(eKmmQvg4F|dxM4?phx9}!> zfB+Bx0zd!=00AHX1b_e#00QrVK;ucI;BR=1d55kHzM7b{BXa0>tJ$iOG2I8IJT@y3|b z6e{}zVt1j1%8g|)Jr}!QE$)n|%JSSnVO2ON+`Tp{ BhvvhpP_@J2wtj z9ttakx%P&vl`#lYVtvS zYjNk{a(*eR9^T$dL<^}KvDw+e?dtZ8qEeb~s^R$fBp06);w&y*l&3jiDjJRRl7#!^ zrwthIL7SN^V*c$xq}ei)4DCRHi^1!GUOoL_CAnIw-FdXgMd!yPDY|f{sO=Q twt|{@B4#Z7MG5l{TCU7xHxLK~Mhx7N1Klp3^ z8*25Vn?*${v~_qQRGJpJDcsv-kt5Ild(hhs^d0m~^mX($`ulfrm_t?|00e*l5C8%| z00;m9AOHk_01yBIK;S(hFyIf00e*l5C8%|00;m9An*Yq0Q3J3P-B1;AOHk_01yBIKmZ5;0U!VbfB+Bx z0`Cz4^87!GQV#U5=)35j(YMgwp}#_Zj{XRL7vT5Mm(iEd7tn8_Uq`=&K7)Q9{WSVC z`Z3f%A47Ynj5L%(Z=zMSi0)zs@Bsoq00;m9AOHk_01yBIKmZ5;0U+?a6Y#hg#?R7l zn1-*=aEOGyOEkPl! JV(Q`G(1B>_aF@s4MQ{xlF&6k z!+sj}(J(+lr=NyC8hUByak~PHn*=TrI9;wlfZYFg1|K^@Z{q+yKmZ5;0U!VbfB+Bx z0zd!=00AKIo)S2|?)1z*_9VCShr5;i-0t4)QTfrXa-_&dTRgY9CrENmPSoY~?Imqt zb>&fdd1)uTyuz=~Y(7dK&2#CQv^IZxO-RoqAFZ#>K3Ws-_VVW8!t%Pdwp@wL77| gl7jlJ!wzitCuCK~Fv)g5D{dQ$5 zTg>mz71R6K($b-_I=i>_@BydXl$& ~wYi&jHmKdL1fLTg z96l7bwsOKIE)(0VJ}9PFA86^-6*(=Wch**C 6smIZMm?$w!Ox$ug>%7 zqn(5FQIel6amFv-B_?^Ewf)9pLWqgS*BMH$fVC!SJKRA`6|$ndvtQmXmjz|3o|X0w zO2v(Z f00e*l5C8%|;29Hu`TsL+ z04N>^00AHX1b_e#00KY&2mk>f00e-*`#=EZ|L+52C;|uo0U!VbfB+Bx0zd!=00AHX z1c1OZCIIvQXWRf#JP-f^KmZ5;0U!VbfB+Bx0zd!=0D<>`0L=g22gpza5C8%|00;m9 zAOHk_01yBIKmZ5;foDu0==-kYjN?lVG#2__{a5?H82E vRB{A?A6q2X0uw}tJL&uEuV=hyrAae z*>;2TH ZaI6g%3UJjz}j)$*gPR;sI;YL!hdEVJpAxjFXU((HV4X^p*`T4R$d z%L}t<>}WofUVaUW$knxSDO1;q>L{C6>MGf4X2k~O?6#V#XNcpv`lwDlTG3UtQXOUY zm1=HFsa_R0E@ID%BTJiVrl{6x$|m-&J1}HnC%H0~TB>L2hZU8U(3DPOFQsm!mQv}P zsr${k+A|o{jj%JsZizCPP0udRCg L?%tk_ps gE6(#*23s=;%
b_0Ur)7qM0<~o zOF2205L7Cx!}x5MmhUiXI|fXTwocHIrCTqZ81#kT#Ny{q60dv0eKpGqTrRtj=&t+B zsdRTZdy-@`!)WA~>!+uI$LHv2puJh!_Xi9;#%Z8E*%-gRzte!(Z98+lyD_p^$x}F{ zwubsAjOvlVFF4)^4-Ye+y4;Ga38SwEq&7Oo4+nhVWRiJ&z12_0P}_9ekrM1tQiow% z(ajUYiRb6{s$r~ym<;QuXdNrVDVwPO+m6>4B8-C`fwkR&R#!8aqCOmwE#n$1Q!e0h zUF&}TaoX<-Clbu#nAI+NU$S)6Xr7MPK$rIDFnX%C(7l`v7qvYdDLm|2m3psQqcQ09 zg-1r1#!eeh3!<+VxTk_uQpgphd1V;4T^O?ZNh~7zyy4p;Cw35>xZXMFwm u_)3?S-W0Zv&I(kha0X0b3A;ivx1eMoSwN{UKHdkXPusPah6qW z&;ZzZlI}3IPWx8=j#8`>c1M2FBzh$7jvXB+f&m4>kqGmtM*Ia|IESx2*Q_ejA%zB3 z+14CKNyw^_=WTPGcGH)PYIe+a+6|l6Bc@N=DY2^vQY)H3uQc~A;N}V>nd6DmYPae` zSn`q*%|=DRYO$_`zSy(Xx|%mDbwXiQ!*z9GuV!c4-E(?L$6llT+88%$>h7Le%BgL; zENni z f00e*l5C8%|00;m9AOHm3 z2LeInm+ fLt*a?*Ym-m4mSVpT{^S*7V|~Y-$td*+w^{Jw zRIZ#?TNh{ewwwH|sVz%45wF8>KK!Q4G*-2eH-Y!?r!jT~- b+mHn>(D7<0o-_8q^&=k(zCV1Xu0oJ4|@|v8n?#qlL#WyIG}av(l0W2sV!4b zvT7ky#4TUQ#G=`}m>09OI$bijjdo~R^X_7IvSV7CF1bjJnu^FeHx-2&XZEr$EQ-u= z!oH$uZ^JImJgvuJ7YpO4=)4 7_R{SeVrH*bctB;#inSo^aJhOFj8K+W~$ zoE(+ZtP*WExYT+iv?q7u*AIbqGg5Ur%F(6wtHZu<20y#7XzwSMBs*wwjOL_lPK~SC zcBdDgAg!05-V)n#j7CBM*Jt4oDtLtI2k8;258*wzMlInBU%A4(HBJX?GSc9OhpOcb zt)RB-Ty7ntThg9tc-D&a(L?h_bj#R_PblV?*E!}JXS8?m{7a;9KI#kKk1&mdeH^Xf z$05lxm+GU6R#h|Po>oSYb5S806^#+pFk!onpC{#S895C@g3VSIK6^$bAGtexe8qnD zG^|?{pw{MSO(c#@F+1v^b^ep=cl&MUPR!f1$F){E9|*O}>~gd3y6g@2ex#&TT!wGm zAATz$_~;`;Bi1!LX?=SAMK(_P$k6GY+o>qE+CjOB?^!l`o)B-j _dezO#cH(-^#fBSN6_?R!D%vcuiCR>&f+bRr zr52GyNL|_3=oEod$OEwZ_#uyWeY8h!;|G1Z-m=Ao(yF)0YN w;A6hkABQHEyz*Tbc`PkycDC|_OXw4+ooA_W2E&EZN@* 0jg?W3h} z`PF&g(k3TNdNsLKqt21`-3+mC|DR5(ApinE00;m9AOHk_01yBIKmZ5;0U+>P6M*^u zbKSg9IUoQ8fB+Bx0zd!=00AHX1b_e#00NW%%>SVy00AHX1b_e#00KY&2mk>f00e*l z5P1FxkokWf`l f00e*l z5C8%n90DE}!}$AX7@(n_hCUj4Y3L!L&rL%Y3EfV&iwU^(`Ty4)=wH!y(LbYap})r~ z0Dp=86#XIk`Uj_ipacj20U!VbfB+Bx0zd!=00AHX1b_e#un};(0!$wX0wnO0z()cv z2|OfllfXp+r^^)x1aaoRAn!nLqY?^)ek-&anh5^i;BN;Ha3p+y01yBIKmZ5;0U!Vb zfB+Bx0v~1qGkpO^5=~Apfq=mA@kuT|Da2WUpO)g&B0m+wZ`+b$(z05sui&4=XYc9n z==h @##oeh3F_& %$vO@#Lv8f;dE4Abrf-Of;AvopjPG3*6wcX`4~ z^w^AuBx85tJhqsOd8jI5idH|Ys7+-?97`gvox{fbb&nyh&D@aKlHshL!O+>3!O&{Y z5IKW0OvoN0xXqe~wwqoW#HPbn+*CPv%U)A5* jcYQ>DXJ&wQ?o{Gf_5^AYlJ#0!PD-<;5sta39$c9k6 zogve*bW%%0q}|ex*t8sFu;utQBG7I| 9`sRmhxQ6Ni0U!VbfB+Bx z0zd!=00AHX1b_e#_@EOQbImi``NQ4Her|Vf_o)16S2 +!G`@CnxH%^RjC` zP}s^A6SW=gAf^ggQQp}v@0ZJhvQ^JY`v;}shCcuQvIG4!`tk?8(x49r00AHX1b_e# z00KY&2mk>f00e-*hnT=CuB7q(kHjR;vx0!XM=>pNQyiZVVxn`%l{CJoLX*iC1LSF5 zn!?{x5rjk#EjV0g(18ZgPoR|#F-5345C8%|00;m9AOHk_01yBIKmZ7Qs0h5ycpZ_1 z7-;>X|1GVGzX)S|>z}<@F4gfv`y;j=UEuJHJBlaP_@#N?mqgL!b>NWEe}G_lORMJD zd-%&RU2}@loQ!{Az?pE8Oi8_D;l7H$_0gKEwKzP97ZOu(IWBQBZlUYVth_F^XL*Lw zsRSR7atU((--Z53|NZ}e`cO4BR2B#T0U!VbfB+Bx0zd!=00AHX1c1QvOMtxl&)NF> z|1R{l1N|+2 L~Q1%M- zsqM<9XVBdi<9yNOcE|za$3`<1EmymS17fV-|9{7UzK6bp-ub~M0qTJO5C8%|00;m9 gAOHk_01yBIKmZ5;0ZM?}{r7n2GXQS4E5Nw^9rC|=mH+?% diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/__init__.py b/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/settings.py b/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/settings.py deleted file mode 100644 index 218f2cb32..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/settings.py +++ /dev/null @@ -1,131 +0,0 @@ -""" -Django settings for django_project project. - -Generated by 'django-admin startproject' using Django 2.1. - -For more information on this file, see -https://docs.djangoproject.com/en/2.1/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/2.1/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.1/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'exhlfdat&vfum(-34*c2uroi(($ww(yo$9pv98=e6p^gl(-eoj' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = [ - 'blog.apps.BlogConfig', - 'users.apps.UsersConfig', - 'crispy_forms', - '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 = 'django_project.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 = 'django_project.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/2.1/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.1/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.1/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.1/howto/static-files/ - -STATIC_URL = '/static/' - -MEDIA_ROOT = os.path.join(BASE_DIR, 'media') -MEDIA_URL = '/media/' - -CRISPY_TEMPLATE_PACK = 'bootstrap4' - -LOGIN_REDIRECT_URL = 'blog-home' -LOGIN_URL = 'login' diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/urls.py b/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/urls.py deleted file mode 100644 index 37b6e5456..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/urls.py +++ /dev/null @@ -1,34 +0,0 @@ -"""django_project URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/2.1/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.contrib.auth import views as auth_views -from django.urls import path, include -from django.conf import settings -from django.conf.urls.static import static -from users import views as user_views - -urlpatterns = [ - path('admin/', admin.site.urls), - path('register/', user_views.register, name='register'), - path('profile/', user_views.profile, name='profile'), - path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'), - path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'), - path('', include('blog.urls')), -] - - -if settings.DEBUG: - urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/wsgi.py b/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/wsgi.py deleted file mode 100644 index 14bd24ed6..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/django_project/wsgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -WSGI config for django_project 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.1/howto/deployment/wsgi/ -""" - -import os - -from django.core.wsgi import get_wsgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.settings') - -application = get_wsgi_application() diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/manage.py b/Django_Blog/07-Login-Logout-Authentication/django_project/manage.py deleted file mode 100755 index 6b39db5c2..000000000 --- a/Django_Blog/07-Login-Logout-Authentication/django_project/manage.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -if __name__ == '__main__': - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.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) diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/media/default.jpg b/Django_Blog/07-Login-Logout-Authentication/django_project/media/default.jpg deleted file mode 100644 index 38f286f635abe00850f6faf44c5d4e11adfa9d7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10994 zcmbVx1z42Z_wF}A3?VagGjw;0NOuq2CEYF3NH zccC)kg0RSl8t=`wp))9^Q&=}8K4<(1j_W%GJ&*49?&3|BD zyN75$0YJ{fGtk?~!O<7VX3LJ`7Z(>pD%%CP+WGo&Yg^m8SbIM}%6YhXTDu1Vz~7(w zb`?N)8(Sng$RhmWA|l)ZJm~QMBmdjUf2{uZ;C65Swm8xGYtKNW x)uak#6(#idQwZs3P%l^ZMTljZgqXE(LYk=62 z2Y^oz1CX!d0F($9fS47cXF&h#n>x$@xIKA>bf5pudo)JR|26&(12`4^671vTfV@@9 zq4bcpe%}7K7=0#g2MhoQAOMH~3V;@11lRy>KmZU0BmikZ0Z;|B06oAMumEfUN5Bp6 z1_FR!AOeU15`i=z6UYOKfagFpPzN*tt-xEL7Z?J@fcL;WumWrXyTBoE1e^g^=t71C z!Uqw7C_r=|W)LSx03-&w4^jZBgHRx2kQK-Q (I0c*oE(O tIsl!8Zb6Tr*BJO1)EJx?cQI5jj4&K90x)7Q zvM?$znlT13<}r3L&M+}CNikV5MKP5zjWL}ugD{gYpJCQx_Fzt9?qHr`VPR2Vabihg zX<=Do`C`Rj J+?7Qj}-Ho OKwuEFlYp27Z%eFcNVm|=He zTCfMOKv*j5IjjRV1>1#P;UI8WaU^l{aGY@>aB^_!a0YQ!aZYe?aT##MadmK=aKmwP za2s&n;cnqx;1S|+;K|{c;rZdE;8o)F;4R^u;N#=7;7jA1;QQjI;8)}K ux$>+&0DUcKj6fP9$6s;6%lu$|zN*&4o%0kLP$}d#JR1#FSR0&i~ zRLj(0Y7S}?br5wK^*Hq@4K0lljVDbmO+U>ST2fkRT4&k}+Ai9CIwHFJbWU^`blr3Z zND`zB(iNG596%n?Q`0Nc`_Y%sPtsp8urlZ~L^9MftTEy+iZR+VW-#_K9x>4|X)pyd zy O;$u(BAk#Im%q?6H!ws<1v{eZjiQhR-I&=EYXZHph<1F2?S{ z{*3)S2be>c!;vGOV~P{ZDZ=T*`HXX#3xi9X%blx~Ympm|TZY@8`vvzF4=Im2Pb5z( z&o^EsUK8GQ-eKNrK4CsrzUO=^{Dl0f{E_?}{67RZ1Z)NJ1?B|t1r-Iu1lt6Ug*b)m zgbIZ|2oniw2*(Qd3I7oh74a6S6WJGK615U75M2}_7Sk3>5_>0(AucN(CjM6Z;;zVD z-@8qBze{jSxJcAU?A>F%XLs-Uy&XvgNo&ax$<6!7`&Rdh?{7-cOIb^mN^MIsN `d zkW!B_hO(M+y7Hn5jf$;GwaSsIsA`DnfEu2fu3DbjwmOHpw|a*LSVL9gsm7`%v!=Ud zs}`W8qV-g3O`BEQOZ$xurjE8wzRo8UKPnhCtV^V8savCarYEbHs<)!grthcUXFy 9T#ZYXc~#BkGy*C@nj%$U;H$+*n~%f!H>!sOIc!8Fr!*G$+f#%#fy)%>CPhy|sE zt3{_Jfu*(OD=Q2uL#rCA-_}~zrPil5DmDc+N49dd*|vudq#tBF*te6kdt&$5Uef-F z{houQ!&8TSM=8fF$1hHDPI*qp&dSb3&gU*#E|o4fu7 _FWPU*|Gs~||E~apfL9L@58WS* z2XX|)2Y!B}_^3Px8e|*P7fc@<5xf;56H*ci3bhIC3u6q63fm1=3a^U5iExRSh~$fW z68ZD7;p2`dnyB!oooJ=#7cqBYykiz)C1Q)>pm9!dlktM_x$)Nt4-!Tb`4Y1de<#@{ zjVALa=Oo{x*r!aUili2%VWzpKEu>4OS3N;IdGuuGsm9Zm3}i+^#?MU4%#kditfFk3 zY`^Ty9QB;GT&CQ#+~0YQdGq d(E21e%EV?XqD*jNSRMJw) zQkqqUS>|8%>AAu4;c~I^>I%w=#EL(a?vYCIS;1_-`_G`^*-@lZ9 z*;dD0S5i+}pV$C2_%$3fS~V^-sWtVz5_?tmn)!7>Gf{Iw3#cWq<*3!Mb+gU5ZMt2x zy{|)}qxlWbo65KJZ}U4zI#auFx}v&nx*v6)_IUPu>2>Jc>9g!x={M@18_*e;98?>8 zH>5b!KP)rc{Z8`T+mX8??W1C&tz#l%E#t!D%@e{C&66UNEmNXXZSTe3cTC@#?wXOB z>7A9I9hy^_8=KdhpI*>k_^@cUxcTA1hrK1&rQ>D)<*SwORgBeyHTYWAI`w+#2Kz?+ zrpRXJmi*TEw(j=Ij_uCjN1u )PF<%j1 z3%;>^d;MMd`}mR3(eAPL@y(B<6N;0{pF%(TPPI?h&)m+g&J%u7{HnSTyBNMSy!?C> z@EhxQ&L8$a9oK5tt2b^pH#aMQ8~_2MFIF%FEl~771~vu;6pDd^g@uWYhl7WQi-U`c ze}@o`e+O{~7Z*+nM-UN{kdWXJkdc!TlM@n?5Z}HD2!dV%#eiX8z=-j2@rnPR<)#ln zU;~%HB?N>3zz7fo0lFCgsL|X747u%h{t*xu?IR`@HhPu 16amXr% UnS&v` z8cC16WUDUC59k0@k!ew25-=F8QjX#vvYk=@N5-)M034eG2?k;76~m)A;ZziQ;P6{A z#R14DL&5NHX?kp2F1(~gm^1(fFqi;ow5c=_9wi8A!EQ0DHD&J5mX>EvA;Auptpvg0 z*ia;cpyf(|6-v8BL{~kE9?x@+6<*`aj>wp)s!(*B>5GeJ@T9z6-K1Bo;-2{MX^9I; z5A;Msbx JZ5Ll}k;}mpJNrm^b z0a}NlAL`bW7R8t%Si2{SdcrK*h^;)|uO~n6f6|b+$l*#%ysfG_BEOjSxjyf5v%dV~ z(L2>?J!x5GY}L4k`orEx`rN>^gG|DBRXmpymEmR92O<1<;ZOm#C!FRP@8uO~e~rik z4|XT=p{mAXj3&XAe#(sZizoKCbfZ-`nxY05Y;Cl`_lSHf7WD-WobtlC%0%3fWdq+5 z{=RU;rah<4&KptWc@ nblfhocURQDa`|H8WjxTZn57QXTTEESBPeBjGqRLy z&(o9!0>UfC)l%~+0~rucf+jw{Wf8NNUr=Anseh{Bw1@5B9JKntMR;{U85=6wy!<(~ z&hg@~=w)#+kw(cELmB~9mPI1r&7~!2X};RWdqbjU^e{#p4h@4})3pOCoA*M>!4ynt zPYQ2 PtKb%4pZp<3GFxLX*0i6K zdM$psAA;_{0Qlj7o6iWRhI_m1q0s7L?I6c1oXMcT6HB^TX+H88W1nwdW`b{ksWt$J zd@SEB^SuZ)*>y6s;JCoK;G!XN98r7lx
)00_&LRJ#z1DT_)&ts?v#|kPLM}q9&dr5k75vTu zvpmA{u~b`^f-*9tgrgDVf%5|B1O`*=uig9eT~q9GNO+2Ik(?8up{G|e`mpm0lpoLP zm3&+Kdp-bLFGDiB{%P3;H_yeMXaQxp)toXMd-rYVkt%@aI0Da#ZvfB-+2t@KINzcx z)S>d8+Vf^EoCPN4WFHG&Pc{HcgPf2fug(#GGk~uOIvrko-+5EPzd&NvU?gwAU=c9< z#fb#4eXc^@Gc-994#c&L=SO%f+)XunN}T0p(33D^@=DG3zNH!nz+;aTuxELM?)GtO z-?hihI<2HQSZLBC@}t?UVZMc7()8hX;xf~+{BcvCg#*}GD+P%;kv)_9V-AZ6q;Ae} zV-iC5!<6B=r8x8{IkQxf=m;>Mi>yW>YnRWqGQCXtjN+a-i9Mo5Rswp~S-R50`KZU` z*a~QqCQf5Uuf-_|WCO9VK^VFaal!!*x^#j;P!I+>-{J>~p>B wZriF&s7+{`|E`l H zPBL~>Vm7bwx&ee9weXAcO=_Z}dST3yStqX_Ux}U#h|ieqN~kiMt>WNa=s&{zAo2ZK z>Rfa1LyMQ}UZ49US9PDU4-&>JjK2I$w(&OhzTy3d7AaOkDwA_ggR@kF 9+Ms=C!9R(n?L0OKbFqS1hWl ze(3dOsCpOH&uh}&e<|wjc5G+Z?V|6JtuJ3mlfbN{z0{{ v$Ffg20y6Z@AT)Sar4iAJdvDMg
RK)I-6iS xP}vV^BxPr}yUhB`je zkJ|p8n#{5_v6hrvI##PWwB_{5wd1>Q|5$20+Cc_1a{xha3B$h*N&{d%Z6rUOo>0f? z@6!jq_3v7`+ELlJ+Kr4PIuu{gj8tH%#N0)nL$92jRk4xn1x~pb-Y14ab`8>*Q7aIz z(;9vUHtYd9fDPRPsX7+35|FMQwVj=pwA=vQcf!WxJWN1~QfLpv(1qZZf#6`E (6;u9DCw0&>83Zz*?1oLY#smis(>j4zDCx5rWhEu+M<@g zOqU#O{VkeH?amZXcQq5KHkm*ynw{i}yFz0>uYf< zx{xEYl%9htO}#LD7zSap>=b8B&NiVz_a z*{;_gwR=!PvG-s(5tFZDl|J-%m198meRWT%RYU$Xn^V(DMO1H)ulu~53s!#D)8zUl z-+}5GNdt_CLux}(ug3PdvAMw5N|x*)w_e+F0x2H@^mP>MV;NhHAkFgXLgc3ILQ6J# z1cpb4{=KGoFO06h%!Tn?M$(@FvcHmsGbd~^+Hu_M$IsH!Bgg#v$|XxuitS#_bgLXu ztTHcTnR wR*65Y$lA{&VxzwK?`i~#WPaoFFDiwGhCFHI}i#Q## zGE&NT^`pS1o2*jS{`EhKdgd9t^@_g+SVnvfcrN;*ZgJz<*_dKrQX>4#4DByHS*7!- zjH+IVxS_RWmBD_GbQ$4$R_foYr=O!*h5{G=45aIJPe7j^!)2B%t(a1J3XBam8l E5mB|H=xG6#Xe{@ujt(RA1C# z)Hre)c1=u=t^T&p-sVw5P82=1Ec~yb@GTk=@u9IyRMa=g?jG4(!;3jrhgWMjE4G~> z9aN9?SCubUR2q4)d}!row`M9grptK@-?;ST(umv>Ab7GjoYvqde&%WPQ>1(_Zm68_ zst`Z YdyzL*ivlrrF@bWZl3X;60Wq)KEb96L~gWCFPqy)85SYS&YCFIGb zB~3lcAGJ5j&ZbkkY;P|MxEGmhVSJLh&e%VcQQlA9A=itcfOzSq_Bfe$oOa@3 }Vo)gJtDWL7A7#&>&o1r{IbK0jeEd_di~yrP9Rink zV^Eiu4;Rl1Gr99nt+^p#*k>V&7gt!ngRQ#~P}RwbB|psI>&L1xxDCFuN6gQ-t9hBH z&TZ_77*T0n_1PPAPZk$ebxc3JeO+34nwoh7+-3JPY_*JX#q94b9s00yNA5KfO3Y}w z>Z|Z*FJ@O=kZ#6R{dCZd^zSaq%H6G|1oHyLw83G A%#Z&7Gp+6nb{v+pS@ zQfID-(}U@+1H36=bC_gGVWA@9Ztx=R*OV&MC*B4aKed z&LRgFy$15D5~Y+&`Zb}0iWBOkhvlw2A8lGSX0D|+D$WTog0b@XIfTWJ%(A0tx>OM# zUH?qAsMX1-F_~TbT)`|hKUlejq)bA!=g(;e?i_!yOsVr3>9IG74mw&aK6&So3LEHF z{gZ@LsnqXD7Uo&^^jE0<7#NYf+rFS>5qFO}p_yhrvx+ 59)Z!RJr_3#m7QUb+CdY^CZ5(_vcR#t0BBeK4k`-6vCLaY3svZ zd^#C4$=7x;kKCW)Z+|cEP}#r3WlA&I%THI{g^iz_p=C$jE|Hp^^u@mq{)>*cd?(y& z^C)#uoFIM6C-uL2UUX?ebAECp3#Cjrh3PXbk=Il}g9!|trh?i-AHaT@*Q3@fCd&Nu zlI1;4CGqMFxewAexmAq9Zh(4+rao+;1Q^pQ^^+iXDPyjd3DzdufUHMKbeH8>?V&YN zFMCv>Ea6ws_e>~8Hc?}Zil;`Hwtg`pH^47%`Gz)ul!h0@$tcP=f6P{_M#g3AGHv*- zrc}wNps3(8Ks6~nv`S=QpOwO1;GM*2sa1v8@QWNw>qv*+c;T CW#!9nYz`sTurSy28^B%bQ v!dAV1J-{hK1bSoFvhup57!GaxzI*mNf9jfeH@3@NK8k4r-Jku*4N(!_%`(n< zb_1+rQsk!IJu4i&KXn645K33P@j74L>7ls+#>(8DW$stRP8HAo`cq~{!K(W=EBT8v zp?`_^FJ6K!_egp^bW@;n%LV>nP4EjrmAGs5_28EH-_)$C wGq-OU0&xzGFe+xG$z0YYb=hezF=@p4OpipHoqt{U@BrE?~&N1p~*|bJ9$S%JR z(-}L5{WLcgI4U?&ojNI u&&$f>Ym>^p7DeHH_GZ?94G&Ls0*PtYkG*rj2 zp(Q aKWdkhms@kE$!OwdT;Mp|Sq5YL>beYgTklL`3YwU$O;z|5)eS zw6|W_!-s9>0?A6yhDP5?N|9`?u*g(E@r{^dwOPZaSC7hPXS2sGc2_RAb}uh)JXM zR@D@KVf}Rb7-eHqa`w+loQFHrH7N=m(>vvuLwifTBSum5cRPs+yVyi8MMU@?28}Vn zvzb`xRigHyDBh(F+3sZBU4+S(Ks7s_vpf~WHxgp@jQQTCYE7j7z929+=aL1vvG;o* zRlcDS>iLFj`m4Z6Bx^s-$U|=?LU=m1?7fgg`4)4mXbpAMQrH XlI(;9G_L;grdBio@zWz|JjfhB4VRk3XSdQXr^tao498EWGHx`5*|BDg-v$57* zI_cAYZR{=GgkRL{|9RbkI_Iv};9c?xO)#7Ju7I!E{G&I~?m0R_FU(IApYG*G?!Y7I z;Wt1}6g}3AjfQ>5f%8*knd-Nchn+ Q+Q_kEkwI40%qArrKf~;4{lK9nG^(LqR!1Q=I(lx! z%&d~wA}%|MK^c{tNa8o}=X1d$jfeF7_0tT?*`}||gXcK+N4$s3-rmpZSf?A2H=D_p z`=#A5!6~P-S1>M`h^rRGAB@Z1o7}6&!$q|h_0^<$Q-i 3AdKKhqm!Ci_lgMB`|`(DS KfjuP~D@v$JB$N y$X1`0&v7dsje0cj)l!<35FkA<8Hucb;ljigF)(YsI5izAl}0g?%&A zujFfZb%OWlMO9{GZU|KXp F1lVit^nZc4qztAHTe$;DABDpzAwt-#rd{2RB-OU*CiO#UeX4Wy@Yuf!bg>{_!4 z1RRryWs(G(V1T#c0x1H|LHL@1xiTIVlG?Pk9;qb$e7v>_r$x#J{j$8mPG5)&HJM8S zD!7bFNO!lA#A6Svg$5uG2$0nWmfAFPN`$=;HFiF6WlWU=9}@;^ct|D=FrLYY#j@kR zmN|WtchqL`Qmu5ad%r@=+`yUVU<+lw|N90=QI0H %EML2OB~C9yq0VUd1DV^Vs`<$(E`EPy5B^FU-G$6zQZ> z2T0GNT`IU^L&?5z4^YL`uzE?GD^VB5Y|I5hR^b)|Bls_9Q^7VCC84&8KHGL2n;#d- zx26~e0t%7Ijrd;p?zyq!q?Fq+hNE;|=Pb0S?iRPBYKCPC47J={TzYp?JjA9 d}=E V8GB5f(-F3A&!J|Fb_4S7k4cwVugH^{+PgjNWX4}jjgyAyV(5=ezX)ISdLU`8 zkw#;s(Rr0**5NJxhFOC!ZSXT6iX$&BnyN@~k!4uuJpFF*aqSDOw2^f=ok cl#NvR@$LLqVNc+qPLpc3VFN zHFs`k+%LP_?EDA=EB@S=H%VEjV20ER8kYw5Ny2Ag=4nJ TmQE&7^(XZYZI?v`Q?QP!s{ z{elSs2WEZW#MSNTT9Cg}xvU>_Z7YmiWHqv2?$$|F6+DyHrZD2rkuGpI!nJAief=c{ z)AnNxy9oYOU9PA)WW1WeZgW%5P=uh|Jl&t8?wf_(FHw;Rb iO@3uR);&jwY{7y?m!aZ19gn_50;&9zIZo`3Pdr9*ovuO-2XNpO!99IC&+Nn4s zcx;*eYsJhY5kbZMdesE|JhhL1L;#nb{rS48cn8L36Q>rKX5HYyw)R!Vcwy4*Go27D ze%Gmp=UrSKckFsP6?aGTmB3@Xm+_)wLh~U*lQtD?83dk_px5^+i zWv9lJ+lz~MZTupKyI0IuEY8HEpx$p AXgWLdjY(7~YKl*gXW^k(Q*Oed9QPBaj`Vp1wu3uTCVbE?t+Wk1} z6*n&gxVkr}u8vFuice#|jg%&>H ubB8KJKZbWhyAyKJzmzBk1E;QqE8ImFR>5{3kf|6ir4h`tDHtP8(0e) z1D_#^`}&uW)QeOZ5^X%1o~rlwt8@DAjduCWwX&qt@K|8CVvRQh;82VsEGT9bSeL?{ zu6B#^_RSfG!c6>HW4gNEt~IIQ`knC6UnI>-dK8k%iz3zD(`{Q&SPDucsUJVR%2q&q z2(R5eF!{o;Lh3_11dI7Tw?H0h%~L}qX$H~|PTmcLp~_X`iN5I{*pP)QOzYgOxqm$@ zvM#(Ms9~$P7+0P3wGz}5tR}l)JZe#9l1955eVQ0qW_C{Si_a;)K `=^Ir|J&{x(m$iI;<4&4urfEQlRy2+4Y(*=ZV!#ik{&SNZCAET zt3?oLD>izX4!luK)^G8qmPd&>@Y{@KZRB4r$CIdGpud_=i%PT|yDnN~Yuy%OvG_?d zmi=_DxqNY;ZoPQ8Ej}NaoALdWG&MJpqm^*ni)Yu62WAhGnInZ&P!=xyio{$_SZ#ea zHgy~T7_ofa216yx1YYtsMuvW}^)Eoo3O}^_T(_Gng*riO4* B{y57)6@?nbfpyV OKe?a=LGrf?OfL`Ws0JOcTET)@VwWePPyMhPX(f z+unan!|ajM;(XV(g+nNS!*m4^Jl~%pJ#z ; oXiX~cWMep)zMJau(}u3)cmN+PIz(!~_#u&|b&Km&)Xma=0|5g5OaK4? diff --git a/Django_Blog/07-Login-Logout-Authentication/django_project/media/profile_pics/pic.jpg b/Django_Blog/07-Login-Logout-Authentication/django_project/media/profile_pics/pic.jpg deleted file mode 100644 index 24d2c5ecbc870f3c2bb943a07250745dc5c48e19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302829 zcmce+2UL?;_b;4;gc^|Eap(|g2oNBE(n}~pfIw){0t5n55)~{%mtGS}DAGa+0U;Cx z(V<8Sy*G6%bjzsd%;?Pg=i>W*-+JHst#$9Z@3;Qzo~-rkoqhH`yPPNI{GRjV@2$UI z00hx?j&=Yb2mk<{eE@&I1Jt-hULjpcjJy&judf3K7+X2IfWd(8Ekza-0T2y|y?n{e z-d %rmhV3QDd*cpWz>KlD0XOeLJ?<5o%9{in# zg~1K}p&6!c{GEpA8^Ym;vkn9@^gGpu8ykJ6M)+WZ?-U |NV;ZcSmdM%WjxU zc8<=r0N`1~d`I6yJBuF>6H7|K*jvf_;C$t|wgDUf8Gsl-8Sq1JXky%Vo&Qfev;BYD zuN&WU2LM*Jzh7a$n?Jwz$*b$S)wex%x(WYx+5e^qhT#)K&&p?WrjrzM=KPEwIpak` zJTca1{2Bnj4GoJ43j+XnUYyCZBmSYo8~I%);@@ @ya35 zailZ8@4GzVpSIKg;Q!5*gbzI%kN4@B9D0?EKl8==y)JjIk-ppVea~MsG%n#gpK-<; zg+>OS>F^Do@ml|k|BM3wen|XYKu23^q@D>9sg2OqlMf*VhepdMh6WSAkNV%;zR%S^ z$5gHd0M4DoHn12 ml z0D*u|KqMdrkN~&_xCuxFWC8L3#Q-XR2Dl4o2DAgZ04%_Lz%XDGFbS9iECJR5yMPyf zeZU*Q2f(j@KY&0W7myz)0+a&&08{~L0uexC;02&9&>4sU;($TG2w*Ib47>?U2j&4w zfiz$PupQU~90ZO6XMoGVZQx7bG4K=c8;Ao01&M;>K&l{JkTJ*- $6$ zM;FHs#}vmZ#|w_P9ACklU=gr9SQ~5#b^v>UL&5Rj+u(dK4crDE06zh*f?t9^fd31^ z50QmvLQoJ#hz}$Jat)FNDTlN``XLjLb;v&CS58h&aZWW(BTffS9A^~g4bFVdTF!f% zBb>{euQ|VPadAm;X>yr!UE&JnB5`GLRdF%7e&Sl;+UNS6n~(bkZUna-w=Z`rcN%v& zH-q~z_X_tR_a8ihJSsdWo=ZGoJV`u7Jk2~qJc~U0Jb&;C@v8Bf^Lp||@uu=t@^ TX1 ki zJc6o%)`G!;w*{*O2L(3;zX*v4=?PsDiV?~eVhGI$9SL&@s|wo+hY4p0HwljmzZT&T zQ4+Bh2^C2fX%?9f*%##$RTFg-jS|fh?G#-Q{U9bRW*~+YyDnBO_DJl7IET2ZxT82x zyhxlSz9IfiLQcX`0xyvx(Iv4W@tdTKq=h72GFS4R AxkGtJg-69$B~qnAWlH5YRW(&_)jO*9Rgcsp z)g0B5)jHIks`IN~RF7A0R9}N}!i-_juv*xX21vtDBT}PUV^I^NiPR)$)@m+mL9|S? zVznBzHnpMJmfBafJG5Wwi0e4(r0Lw(d9SOi>#JL$JEi+ya6>o|-VEQ>6V^lPrRfdn zeL`p;LJ`%7HGO`4JN+N^ALxHH&@{js)ER6UiWs^W-Z30A{0nJ>Oh9%akByX#f{bd6 zHjPD%-Hh{%r%fOxRwh5144ZsKAyFh03-ybswrR8}!}Q2Z%?xkWZ1&n*(LC6^!TiMq z`3pf8>My*wsBkg(V&lbE7D^Uj7A+QsmN3gGOQz*}E4WpHRln75)+p;+)+06?Hug5T zHVd}GwqCY0+vj$Qb`f?Rb|35w?QhtRI6xen97-HE9pxND9orp0ppDSC&`+G8P99D) zr&rDz&I!E+7}QOPR}4R~6S-*ZY?MmmDvZU3%uG<`(bv(4EuW&Ar @|ixhxNy{V}J9u@h Zx0@MPo2h0RY2NDAxT|Rd?_;PO$B*;665%g#9rQpWkFCmU0H6b5D ztwSq9--KC&QNoV#=J- iaWCRg@znSa2~G(uiNM5w#0MnNvkhjB ztWM4(zr1?kYW3CMuVJtCUKhF^dwniRBPl28Fxf7degk|X^v2jtg`252U*593)o>el zJLLA*k4isg{J5WDpVF4fn;M-up9W7WP5Yegoj#Nymywe3I@3P0BTFDFA#3xF>7BdT z;A}$nLXLh;RnC9qhUK#J;CbbFf98kgvkUYJDhvKD3@= k#lT-6s zZCLF}okd;OUAen?cfZvW>bDx~8wMIx8_SzGo31t;G-I2m=*IN+7U`C}mcLqKTVJ$c z+Mcu >N3&@3mMWe+BOD0Q0%Vx`uS1zuMuG*|lt~svFuDh-;Z+LBNZTfG%*b3V^+9qy) z+_}2*$8O3~$kW_sg3rpI%RX=X8TRwN7swZnUfR5zd*$(J_jTy&H+zYDf9_`-@E?>P z{&3iSgg6>LwmV)r@jKan6Zhtiw^{Fm-qpNUf8Y0u#V>Ood_L@dO!)Zsr~Ff?)7H-h zpU1wqeR=+C%&&j^mixQZ?`>a=zfOJg{&x7swLiK3to#f1*U*1C{nyjKWB&g8->`|! z87z_i7cQ~EhX<31B>C@v#rg{I3OPaEBQ7`;FRv~C9mM<-K>W8||AkXRssModnE-&~ z&c9@5ZruLq>YupnAN;@J%l|11(7)_B!~p;f{WJ91{4d#+MgYM0%bC15kq{yO-O?K4 zDgSSE(8l1y@d^0YvsAGJ{53*s#998aVFVK4N~}B~_B(p}SDF4N&;Jcy{uSrHFf$2% z{R~&0#d#$zDS;3XNs@PrCE*idgTF@ W2Py_&lfFL2@-%kM2XMvuf$bXx2 zAczA1hH#$sNqz4)YyVdMvraJNf7i7GfO4EYI|zY<&aTc6NvIwo7}a7YneSc(LDbBK z_7G2C769zn$ZYNskE37eN`rpm#|JNR_!`_^haKbYLBxjkKS?GOB#dbF5sXior$mi| zA71xe?ELZK(!_4$ZfH!w0CMa98u?wRB4m2wA?JMA TrMR? zan4)QnVx?lec$MkMq%ap9S)ZWegOQ=IsJkw0wuJo0o@PC9 pAFJ4i`O+qB{MG+ zEq?i!m9-T`0SLn?jDE|6fbx%u!LAy=xQFhn{pSXX4!08#jDe>mKTw9Vbe4L=$oB z=mwc@?1-iUJ4KQ@*#w%wQD^rwMyJoi#GBT0Ofzfup-Ty1{N3BVihG+Jm@QM-{PnnS zui~c<=QfwG{aG JMdQi_dTA{8CN7d#T~(m6)dgf3y3$O8s#-T`<+> z5oVhq+C?7a@UL)2gkd4$Df1+f7j($I 6#%z9CJ-An4>Z9qsrIC0RJ`Oy`!&nX}838>jwT$Z?-$;q}ID5wSS6I9TR@xBA)wk zMDxpyk>8Sz2Ugzo3{39I5M%xmGBp-@zulERr_uFD2?H{A^YH)KTBR8mt`*+ob-gl- z)w!^oMBE5^@+&vh*V9#cTr8>6c3XckYTqS$`itxBHqB#}NS*jKJ}yvhuFnIAA+~Ba z*r`1iak1$j+3>S3>G10RSz>BN)b`bp8$4eG0&l!I4Z1cLdZF@Gm7V;Bd(@(ir+>+Q zi|PB1^7>~XK8*U2#a7gCD?=*=5w0^KaI$@MgeQEsRg7vE6Co=|^wh+ogVlqMs!IGM zZ0Ak6gG7l+62bwp^ttlw&uH=n-oH}J5fkCYlC)RcWUI8*l` +`FvD_2D7KY#Af*|q!kN$Gn<`gD5A+#c%1 z1yAMuXh#0+Q1t!<*0|u_cyQJ@ZukA4_nLI?4;()FPww!4*7$;G&w43hufqG7Lx~mV zfq=yIQSw!5Ev-nzhmLf2XP9<)<;qI-rzfbcVS;2>Zw$km-36i>znjOe6#2i0B@Ej5 z$bvFjtRa3H?K>e%xpF@Rheafdaxmc84Eo&kTl9ItTP_n;v+av6(as;L)jC#Ryk0+T zP0t!6K4`tnQ?b-qRn*uzcYM3%=JN}sfdc03U%|hs9K0S(;#nI07MNvpxJr9u_WR|< zyB9u5#QvGb=u#+)X(`_CnVy7M<7eI_|EP3y82Eng&BDO 9A&d z3AJp1*Q~q^r{{t6VlkEw1Ov2~zKg08&$%Eie4V6ejBNcKeTcYgRV(xM?acabrPHji zZ3xvulT*}grCUXSvUjvfuP3hJBc*&RyYSlvowws70v?<{> 3wj<&qsvk2eKOl!mL5W(ul> $rrzc&q;6o!)3WB8^OQr8Le=5eU;pkDz4NZY1UGUE#}pCVYS3<1hu$hVS2U& z6kK^}U-1UC13RO9LiwhW)yIrdQSrKN&8XIshZVLZ4HuQr@dV~ZN8J6xnI(qUF*5QF z&dFZ9Iz!t?AM8uHt`rIy(DMi%X^@A>_?L290_7*ivAbMB8Tqo{PM_mslTDfML0 J z)K(^4)LkAbdyw|htM6sAfnnIMOQL@FRh^g_;4q|nd*ZA^<3V?A2O!o(L~D#m6-;b9 z{laE$N2KG-Q@**ImeoeXa22f=ZJDPHsqDdYPj2^dEpaPZtA|#s7giw;acaOU_v{T} zx`1RzC6O+p!(#;pUe>hpPsK;`fIJ3xFksYpsy-)0%r@Nrf;&uOQwiQ21od)%CYR{k z`s3xo)yqzosYmnQv|p2FpHW8t{U`pvNP64u=~Lv*kwjDZ;Gp4*+EMi S?O}lH9o@ijyQK{>|!3luhTBz1-R@)N=0u4Z$+lu#giYk;Sn`%TP z7%XZGiDAXCUiNe=Xy)tLZLu2)WTE_-l|;G9QMwNBsH7>TC3R=M8&PX}S@l*6OE4o} z7@qK|_Hl6Un;-W7dK!Jt7JoEu`M*pz#h$AoqIGu62&SEH*(IKIdPIA%FQ6iK^Opc= zv7otP=Y_7N;KoS;Za;Kkcx7q2DU~@|jd3X-W0Y>4J|=q?lpIXXbow?4 n K&d*?LKZ9I MVD* z)oyVmB=w(s^(VC1NzZ^K1%)5%xuzC0jL^LBwLb5)B`lh|>6B4*akoqdfAP@cy-u;W z)tvR* o*8-C ;ptWE*OhAa z@RGp7*gbC(_W}5p^TCtaKCj>N``yNxdZvbg6K~e?s{kiU&CS*x$=0IAPp`#~E3Irl z2 88+s-qR 7Q#Mutx$=*(YgD1#EEnXu_BT>ZW;M6SWf&YViB0p5G8-F^zwf>GRP_@uLy1iIf z^TdZV>c0G?l&OHXZFbgpjdY$tJHN=>3vTQ1#rkA?Q@XS{@iXm>je8bTMt&@pLrLC^ z8|M`lEdnhf{A_BmD-#%7$t2!eEl}!fWStnlSp`bRST0b6IVewGr_tSX?PO5g 4t7hnR|GRh`!i0SRJ2C;_x0)P zBq`R;vj6Y`Z8?vuSs0*%XPyOOaizyx`ssck5O3N8C6OTO?#O(hR8JL2yuADiK`SJW zmpTwAT}i~V;hb}EdXjtbJ@qmkBE2T8-hfq*hcsPv3a8;&Cx5OECw8NDnTvbpDFtEs ztAD4S`zNa$ksaL7%gip(NqK#|yS4;2nnt^30`JC2>V)+*$1JwLJ}ww}8pHh6bvX0Q z%t~K?v7P;3xOX)AX{o<96Sz|48bFY0fp%A`QrVw$RK3vL_E=^!8p5B=UV0%YNR|_@ ziojdZrHSfz(v Gtq1>9LYaYR$o78Fs4Y%uJDfHw0qnvxAA?1pZ&GUI_ zPd`^7UL+8|GC$tj94R%Z6?a!f@AHItZ8>^*fQb)f^Bid{F0Oo-w}RABtXL(O`xvjy zXRW}E^pgU~6I6Sb@JWQ?SzGDIb|AjKm*q75rTpVf8t&)1fu9}l#G+c_14KmIR&+7C zeFWz p&3yq94s4YJ$G$nzyD+ cC!U l*hZt%4^L_2lqryJRL(7(dGU|uE} zgSuieJnC2mMBG!<)0#q3@Ic9vgM0i}Q< qVR-!4(V^3kwS2MvmR_;{a6(a%3U~6bEE~LpBMzw)?Z?1SvyE>Q(<( zvsw<^-1;D}G`hM=qNm!9SCemX6SdGXpZ}%Kp*v%=lzn2#J^Qn=tp$igPTH(^gp* B*$e8mycE=SdkS z^rz>(&TrzaQp!p-fdU3q>k0dOZBhr5(<_^*vJKsI2@gT7371*-^H{Dh_ttg;(uTLz zN)e(KcD-+5$R5~IRnkkh-JNhSS=-;#r
-@+auRr0Ll7H&NH@)o+lO5?S$Q5-Pf9I1N;iEEYs Dl4P{$ps;}vH5#QH`@E|pa-^2!5Lg`hSt`-wp z#oA&9#9W~@>+(&Fv5>LuWn0NOflT1wMv)a `&K zub2z Ty@k;v33hBfdjTFJi3- i?8wz2`kU2n& 4-Nz9f19{>N|cd86->F zKv4<(gn_V7w>$2x=9^-}sKHF?Ax~KQ1_ht8Fi)f`{BFzHWMr;SR3S7ARF9*JtuQl6 zxw(`;e4o_u?c42bp8NBavXAn#R5k|edWSmr_94gRy(o3~^$O~W&vOCtSdKdHPPhkz za%clDv2LU&&SZHhOG8L<{lw LguQ7BxCBEkg}$0J@Eh`$ zlYnw`$HBST+i|;5T;ScHf(|h~la9m4>FAKel-FVU08ZZRADo#F3oB~C%zeUVyC=b2 zq$7g(hh`a{1C-~$5v7USXX7gAl@I}OKk_lz0Om7O+KO>|*`O5fKfoVhB7R;O*Raw* zx>Fz~>ikA_j2bN#aL_V(N25X){)JaOb0WNhQ)`lSgjG