+
+ Add a new topic:
+
+{% endblock content %}
\ No newline at end of file
diff --git a/learning_logs/tests.py b/learning_logs/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/learning_logs/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/learning_logs/urls.py b/learning_logs/urls.py
new file mode 100644
index 0000000..2283e6a
--- /dev/null
+++ b/learning_logs/urls.py
@@ -0,0 +1,23 @@
+"""Define URL patterns for learning_logs."""
+
+from django.conf.urls import url
+
+from . import views
+
+urlpatterns = [
+ # Home page
+ url(r'^$', views.index, name='index'),
+
+ # Show all topics.
+ url(r'^topics/$', views.topics, name='topics'),
+
+ # Details page for a single topic
+ url(r'^topics/(?P\d+)/$', views.topic, name='topic'),
+
+ # Page for adding a new topic
+ url(r'^new_topic/$', views.new_topic, name='new_topic'),
+
+ # Page for adding a new entry
+ url(r'^new_entry/(?P\d+)/$', views.new_entry, name='new_entry'),
+
+]
\ No newline at end of file
diff --git a/learning_logs/views.py b/learning_logs/views.py
new file mode 100644
index 0000000..8c0e3c7
--- /dev/null
+++ b/learning_logs/views.py
@@ -0,0 +1,58 @@
+from django.shortcuts import render
+from django.http import HttpResponseRedirect
+from django.urls import reverse
+
+from .models import Topic
+from .forms import TopicForm, EntryForm
+# Create your views here.
+
+def index(request):
+ """The home page for learning log"""
+ return render(request, 'learning_logs/index.html')
+
+def topics(request):
+ """"Show all topics."""
+ topics = Topic.objects.order_by('date_added')
+ context = {'topics': topics}
+ return render(request, 'learning_logs/topics.html', context)
+
+def topic(request, topic_id):
+ """"Show a single topic and all its entries."""
+ topic = Topic.objects.get(id=topic_id)
+ entries = topic.entry_set.order_by('-date_added')
+ context = {'topic': topic, 'entries': entries}
+ return render(request, 'learning_logs/topic.html', context)
+
+def new_topic(request):
+ """Add a new topic."""
+ if request.method != 'POST':
+ # No data submitted; create a blank form.
+ form = TopicForm()
+ else:
+ # POST data submitted; process data.
+ form = TopicForm(request.POST)
+ if form.is_valid():
+ form.save()
+ return HttpResponseRedirect(reverse('topics'))
+
+ context = {'form': form}
+ return render(request, 'learning_logs/new_topic.html', context)
+
+def new_entry(request, topic_id):
+ """Add a new entry for a particular topic."""
+ topic = Topic.objects.get(id=topic_id)
+
+ if request.method != 'POST':
+ # No data submitted; create a blank form.
+ form = EntryForm()
+ else:
+ # POST data submitted; process data.
+ form = EntryForm(data=request.POST)
+ if form.is_valid():
+ new_entry = form.save(commit=False)
+ new_entry.topic = topic
+ new_entry.save()
+ return HttpResponseRedirect(reverse('topics', args =[topic_id]))
+
+ context = {'topic': topic, 'form': form}
+ return render(request, 'learning_logs/new_entry.html', context)
\ No newline at end of file
diff --git a/ll_env/bin/Activate.ps1 b/ll_env/bin/Activate.ps1
new file mode 100644
index 0000000..2fb3852
--- /dev/null
+++ b/ll_env/bin/Activate.ps1
@@ -0,0 +1,241 @@
+<#
+.Synopsis
+Activate a Python virtual environment for the current PowerShell session.
+
+.Description
+Pushes the python executable for a virtual environment to the front of the
+$Env:PATH environment variable and sets the prompt to signify that you are
+in a Python virtual environment. Makes use of the command line switches as
+well as the `pyvenv.cfg` file values present in the virtual environment.
+
+.Parameter VenvDir
+Path to the directory that contains the virtual environment to activate. The
+default value for this is the parent of the directory that the Activate.ps1
+script is located within.
+
+.Parameter Prompt
+The prompt prefix to display when this virtual environment is activated. By
+default, this prompt is the name of the virtual environment folder (VenvDir)
+surrounded by parentheses and followed by a single space (ie. '(.venv) ').
+
+.Example
+Activate.ps1
+Activates the Python virtual environment that contains the Activate.ps1 script.
+
+.Example
+Activate.ps1 -Verbose
+Activates the Python virtual environment that contains the Activate.ps1 script,
+and shows extra information about the activation as it executes.
+
+.Example
+Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
+Activates the Python virtual environment located in the specified location.
+
+.Example
+Activate.ps1 -Prompt "MyPython"
+Activates the Python virtual environment that contains the Activate.ps1 script,
+and prefixes the current prompt with the specified string (surrounded in
+parentheses) while the virtual environment is active.
+
+.Notes
+On Windows, it may be required to enable this Activate.ps1 script by setting the
+execution policy for the user. You can do this by issuing the following PowerShell
+command:
+
+PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
+
+For more information on Execution Policies:
+https://go.microsoft.com/fwlink/?LinkID=135170
+
+#>
+Param(
+ [Parameter(Mandatory = $false)]
+ [String]
+ $VenvDir,
+ [Parameter(Mandatory = $false)]
+ [String]
+ $Prompt
+)
+
+<# Function declarations --------------------------------------------------- #>
+
+<#
+.Synopsis
+Remove all shell session elements added by the Activate script, including the
+addition of the virtual environment's Python executable from the beginning of
+the PATH variable.
+
+.Parameter NonDestructive
+If present, do not remove this function from the global namespace for the
+session.
+
+#>
+function global:deactivate ([switch]$NonDestructive) {
+ # Revert to original values
+
+ # The prior prompt:
+ if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
+ Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
+ Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
+ }
+
+ # The prior PYTHONHOME:
+ if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
+ Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
+ Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
+ }
+
+ # The prior PATH:
+ if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
+ Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
+ Remove-Item -Path Env:_OLD_VIRTUAL_PATH
+ }
+
+ # Just remove the VIRTUAL_ENV altogether:
+ if (Test-Path -Path Env:VIRTUAL_ENV) {
+ Remove-Item -Path env:VIRTUAL_ENV
+ }
+
+ # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
+ if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
+ Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
+ }
+
+ # Leave deactivate function in the global namespace if requested:
+ if (-not $NonDestructive) {
+ Remove-Item -Path function:deactivate
+ }
+}
+
+<#
+.Description
+Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
+given folder, and returns them in a map.
+
+For each line in the pyvenv.cfg file, if that line can be parsed into exactly
+two strings separated by `=` (with any amount of whitespace surrounding the =)
+then it is considered a `key = value` line. The left hand string is the key,
+the right hand is the value.
+
+If the value starts with a `'` or a `"` then the first and last character is
+stripped from the value before being captured.
+
+.Parameter ConfigDir
+Path to the directory that contains the `pyvenv.cfg` file.
+#>
+function Get-PyVenvConfig(
+ [String]
+ $ConfigDir
+) {
+ Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
+
+ # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
+ $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
+
+ # An empty map will be returned if no config file is found.
+ $pyvenvConfig = @{ }
+
+ if ($pyvenvConfigPath) {
+
+ Write-Verbose "File exists, parse `key = value` lines"
+ $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
+
+ $pyvenvConfigContent | ForEach-Object {
+ $keyval = $PSItem -split "\s*=\s*", 2
+ if ($keyval[0] -and $keyval[1]) {
+ $val = $keyval[1]
+
+ # Remove extraneous quotations around a string value.
+ if ("'""".Contains($val.Substring(0, 1))) {
+ $val = $val.Substring(1, $val.Length - 2)
+ }
+
+ $pyvenvConfig[$keyval[0]] = $val
+ Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
+ }
+ }
+ }
+ return $pyvenvConfig
+}
+
+
+<# Begin Activate script --------------------------------------------------- #>
+
+# Determine the containing directory of this script
+$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
+$VenvExecDir = Get-Item -Path $VenvExecPath
+
+Write-Verbose "Activation script is located in path: '$VenvExecPath'"
+Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
+Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
+
+# Set values required in priority: CmdLine, ConfigFile, Default
+# First, get the location of the virtual environment, it might not be
+# VenvExecDir if specified on the command line.
+if ($VenvDir) {
+ Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
+}
+else {
+ Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
+ $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
+ Write-Verbose "VenvDir=$VenvDir"
+}
+
+# Next, read the `pyvenv.cfg` file to determine any required value such
+# as `prompt`.
+$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
+
+# Next, set the prompt from the command line, or the config file, or
+# just use the name of the virtual environment folder.
+if ($Prompt) {
+ Write-Verbose "Prompt specified as argument, using '$Prompt'"
+}
+else {
+ Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
+ if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
+ Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
+ $Prompt = $pyvenvCfg['prompt'];
+ }
+ else {
+ Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virutal environment)"
+ Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
+ $Prompt = Split-Path -Path $venvDir -Leaf
+ }
+}
+
+Write-Verbose "Prompt = '$Prompt'"
+Write-Verbose "VenvDir='$VenvDir'"
+
+# Deactivate any currently active virtual environment, but leave the
+# deactivate function in place.
+deactivate -nondestructive
+
+# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
+# that there is an activated venv.
+$env:VIRTUAL_ENV = $VenvDir
+
+if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
+
+ Write-Verbose "Setting prompt to '$Prompt'"
+
+ # Set the prompt to include the env name
+ # Make sure _OLD_VIRTUAL_PROMPT is global
+ function global:_OLD_VIRTUAL_PROMPT { "" }
+ Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
+ New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
+
+ function global:prompt {
+ Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
+ _OLD_VIRTUAL_PROMPT
+ }
+}
+
+# Clear PYTHONHOME
+if (Test-Path -Path Env:PYTHONHOME) {
+ Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
+ Remove-Item -Path Env:PYTHONHOME
+}
+
+# Add the venv to the PATH
+Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
+$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
diff --git a/ll_env/bin/__pycache__/django-admin.cpython-38.pyc b/ll_env/bin/__pycache__/django-admin.cpython-38.pyc
new file mode 100644
index 0000000..1206bbe
Binary files /dev/null and b/ll_env/bin/__pycache__/django-admin.cpython-38.pyc differ
diff --git a/ll_env/bin/activate b/ll_env/bin/activate
new file mode 100644
index 0000000..a63a963
--- /dev/null
+++ b/ll_env/bin/activate
@@ -0,0 +1,76 @@
+# This file must be used with "source bin/activate" *from bash*
+# you cannot run it directly
+
+deactivate () {
+ # reset old environment variables
+ if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
+ PATH="${_OLD_VIRTUAL_PATH:-}"
+ export PATH
+ unset _OLD_VIRTUAL_PATH
+ fi
+ if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
+ PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
+ export PYTHONHOME
+ unset _OLD_VIRTUAL_PYTHONHOME
+ fi
+
+ # This should detect bash and zsh, which have a hash command that must
+ # be called to get it to forget past commands. Without forgetting
+ # past commands the $PATH changes we made may not be respected
+ if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
+ hash -r
+ fi
+
+ if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
+ PS1="${_OLD_VIRTUAL_PS1:-}"
+ export PS1
+ unset _OLD_VIRTUAL_PS1
+ fi
+
+ unset VIRTUAL_ENV
+ if [ ! "${1:-}" = "nondestructive" ] ; then
+ # Self destruct!
+ unset -f deactivate
+ fi
+}
+
+# unset irrelevant variables
+deactivate nondestructive
+
+VIRTUAL_ENV="/home/ay/project/Web Application/ll_env"
+export VIRTUAL_ENV
+
+_OLD_VIRTUAL_PATH="$PATH"
+PATH="$VIRTUAL_ENV/bin:$PATH"
+export PATH
+
+# unset PYTHONHOME if set
+# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
+# could use `if (set -u; : $PYTHONHOME) ;` in bash
+if [ -n "${PYTHONHOME:-}" ] ; then
+ _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
+ unset PYTHONHOME
+fi
+
+if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
+ _OLD_VIRTUAL_PS1="${PS1:-}"
+ if [ "x(ll_env) " != x ] ; then
+ PS1="(ll_env) ${PS1:-}"
+ else
+ if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
+ # special case for Aspen magic directories
+ # see https://aspen.io/
+ PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
+ else
+ PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
+ fi
+ fi
+ export PS1
+fi
+
+# This should detect bash and zsh, which have a hash command that must
+# be called to get it to forget past commands. Without forgetting
+# past commands the $PATH changes we made may not be respected
+if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
+ hash -r
+fi
diff --git a/ll_env/bin/activate.csh b/ll_env/bin/activate.csh
new file mode 100644
index 0000000..ed68655
--- /dev/null
+++ b/ll_env/bin/activate.csh
@@ -0,0 +1,37 @@
+# This file must be used with "source bin/activate.csh" *from csh*.
+# You cannot run it directly.
+# Created by Davide Di Blasi .
+# Ported to Python 3.3 venv by Andrew Svetlov
+
+alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'
+
+# Unset irrelevant variables.
+deactivate nondestructive
+
+setenv VIRTUAL_ENV "/home/ay/project/Web Application/ll_env"
+
+set _OLD_VIRTUAL_PATH="$PATH"
+setenv PATH "$VIRTUAL_ENV/bin:$PATH"
+
+
+set _OLD_VIRTUAL_PROMPT="$prompt"
+
+if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
+ if ("ll_env" != "") then
+ set env_name = "ll_env"
+ else
+ if (`basename "VIRTUAL_ENV"` == "__") then
+ # special case for Aspen magic directories
+ # see https://aspen.io/
+ set env_name = `basename \`dirname "$VIRTUAL_ENV"\``
+ else
+ set env_name = `basename "$VIRTUAL_ENV"`
+ endif
+ endif
+ set prompt = "[$env_name] $prompt"
+ unset env_name
+endif
+
+alias pydoc python -m pydoc
+
+rehash
diff --git a/ll_env/bin/activate.fish b/ll_env/bin/activate.fish
new file mode 100644
index 0000000..3452433
--- /dev/null
+++ b/ll_env/bin/activate.fish
@@ -0,0 +1,75 @@
+# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org)
+# you cannot run it directly
+
+function deactivate -d "Exit virtualenv and return to normal shell environment"
+ # reset old environment variables
+ if test -n "$_OLD_VIRTUAL_PATH"
+ set -gx PATH $_OLD_VIRTUAL_PATH
+ set -e _OLD_VIRTUAL_PATH
+ end
+ if test -n "$_OLD_VIRTUAL_PYTHONHOME"
+ set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
+ set -e _OLD_VIRTUAL_PYTHONHOME
+ end
+
+ if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
+ functions -e fish_prompt
+ set -e _OLD_FISH_PROMPT_OVERRIDE
+ functions -c _old_fish_prompt fish_prompt
+ functions -e _old_fish_prompt
+ end
+
+ set -e VIRTUAL_ENV
+ if test "$argv[1]" != "nondestructive"
+ # Self destruct!
+ functions -e deactivate
+ end
+end
+
+# unset irrelevant variables
+deactivate nondestructive
+
+set -gx VIRTUAL_ENV "/home/ay/project/Web Application/ll_env"
+
+set -gx _OLD_VIRTUAL_PATH $PATH
+set -gx PATH "$VIRTUAL_ENV/bin" $PATH
+
+# unset PYTHONHOME if set
+if set -q PYTHONHOME
+ set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
+ set -e PYTHONHOME
+end
+
+if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
+ # fish uses a function instead of an env var to generate the prompt.
+
+ # save the current fish_prompt function as the function _old_fish_prompt
+ functions -c fish_prompt _old_fish_prompt
+
+ # with the original prompt function renamed, we can override with our own.
+ function fish_prompt
+ # Save the return status of the last command
+ set -l old_status $status
+
+ # Prompt override?
+ if test -n "(ll_env) "
+ printf "%s%s" "(ll_env) " (set_color normal)
+ else
+ # ...Otherwise, prepend env
+ set -l _checkbase (basename "$VIRTUAL_ENV")
+ if test $_checkbase = "__"
+ # special case for Aspen magic directories
+ # see https://aspen.io/
+ printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal)
+ else
+ printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal)
+ end
+ end
+
+ # Restore the return status of the previous command.
+ echo "exit $old_status" | .
+ _old_fish_prompt
+ end
+
+ set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
+end
diff --git a/ll_env/bin/django-admin b/ll_env/bin/django-admin
new file mode 100755
index 0000000..4f3139e
--- /dev/null
+++ b/ll_env/bin/django-admin
@@ -0,0 +1,10 @@
+#!/bin/sh
+'''exec' "/home/ay/project/Web Application/ll_env/bin/python3" "$0" "$@"
+' '''
+# -*- coding: utf-8 -*-
+import re
+import sys
+from django.core.management import execute_from_command_line
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(execute_from_command_line())
diff --git a/ll_env/bin/django-admin.py b/ll_env/bin/django-admin.py
new file mode 100755
index 0000000..bdc4bc6
--- /dev/null
+++ b/ll_env/bin/django-admin.py
@@ -0,0 +1,21 @@
+#!/home/ay/project/Web Application/ll_env/bin/python3
+# When the django-admin.py deprecation ends, remove this script.
+import warnings
+
+from django.core import management
+
+try:
+ from django.utils.deprecation import RemovedInDjango40Warning
+except ImportError:
+ raise ImportError(
+ 'django-admin.py was deprecated in Django 3.1 and removed in Django '
+ '4.0. Please manually remove this script from your virtual environment '
+ 'and use django-admin instead.'
+ )
+
+if __name__ == "__main__":
+ warnings.warn(
+ 'django-admin.py is deprecated in favor of django-admin.',
+ RemovedInDjango40Warning,
+ )
+ management.execute_from_command_line()
diff --git a/ll_env/bin/easy_install b/ll_env/bin/easy_install
new file mode 100755
index 0000000..9273849
--- /dev/null
+++ b/ll_env/bin/easy_install
@@ -0,0 +1,10 @@
+#!/bin/sh
+'''exec' "/home/ay/project/Web Application/ll_env/bin/python3" "$0" "$@"
+' '''
+# -*- coding: utf-8 -*-
+import re
+import sys
+from setuptools.command.easy_install import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/ll_env/bin/easy_install-3.8 b/ll_env/bin/easy_install-3.8
new file mode 100755
index 0000000..9273849
--- /dev/null
+++ b/ll_env/bin/easy_install-3.8
@@ -0,0 +1,10 @@
+#!/bin/sh
+'''exec' "/home/ay/project/Web Application/ll_env/bin/python3" "$0" "$@"
+' '''
+# -*- coding: utf-8 -*-
+import re
+import sys
+from setuptools.command.easy_install import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/ll_env/bin/pip b/ll_env/bin/pip
new file mode 100755
index 0000000..c8ca168
--- /dev/null
+++ b/ll_env/bin/pip
@@ -0,0 +1,10 @@
+#!/bin/sh
+'''exec' "/home/ay/project/Web Application/ll_env/bin/python3" "$0" "$@"
+' '''
+# -*- coding: utf-8 -*-
+import re
+import sys
+from pip._internal.cli.main import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/ll_env/bin/pip3 b/ll_env/bin/pip3
new file mode 100755
index 0000000..c8ca168
--- /dev/null
+++ b/ll_env/bin/pip3
@@ -0,0 +1,10 @@
+#!/bin/sh
+'''exec' "/home/ay/project/Web Application/ll_env/bin/python3" "$0" "$@"
+' '''
+# -*- coding: utf-8 -*-
+import re
+import sys
+from pip._internal.cli.main import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/ll_env/bin/pip3.8 b/ll_env/bin/pip3.8
new file mode 100755
index 0000000..c8ca168
--- /dev/null
+++ b/ll_env/bin/pip3.8
@@ -0,0 +1,10 @@
+#!/bin/sh
+'''exec' "/home/ay/project/Web Application/ll_env/bin/python3" "$0" "$@"
+' '''
+# -*- coding: utf-8 -*-
+import re
+import sys
+from pip._internal.cli.main import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/ll_env/bin/python b/ll_env/bin/python
new file mode 120000
index 0000000..b8a0adb
--- /dev/null
+++ b/ll_env/bin/python
@@ -0,0 +1 @@
+python3
\ No newline at end of file
diff --git a/ll_env/bin/python3 b/ll_env/bin/python3
new file mode 120000
index 0000000..79ab74b
--- /dev/null
+++ b/ll_env/bin/python3
@@ -0,0 +1 @@
+/usr/local/bin/python3
\ No newline at end of file
diff --git a/ll_env/bin/sqlformat b/ll_env/bin/sqlformat
new file mode 100755
index 0000000..e8574b9
--- /dev/null
+++ b/ll_env/bin/sqlformat
@@ -0,0 +1,10 @@
+#!/bin/sh
+'''exec' "/home/ay/project/Web Application/ll_env/bin/python3" "$0" "$@"
+' '''
+# -*- coding: utf-8 -*-
+import re
+import sys
+from sqlparse.__main__ import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/ll_env/lib/python3.8/site-packages/Django-3.2.dist-info/AUTHORS b/ll_env/lib/python3.8/site-packages/Django-3.2.dist-info/AUTHORS
new file mode 100644
index 0000000..6af620f
--- /dev/null
+++ b/ll_env/lib/python3.8/site-packages/Django-3.2.dist-info/AUTHORS
@@ -0,0 +1,1000 @@
+Django was originally created in late 2003 at World Online, the Web division
+of the Lawrence Journal-World newspaper in Lawrence, Kansas.
+
+Here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS --
+people who have submitted patches, reported bugs, added translations, helped
+answer newbie questions, and generally made Django that much better:
+
+ Aaron Cannon
+ Aaron Swartz
+ Aaron T. Myers
+ Abeer Upadhyay
+ Abhijeet Viswa
+ Abhinav Patil
+ Abhishek Gautam
+ Adam Allred
+ Adam Bogdał
+ Adam Donaghy
+ Adam Johnson
+ Adam Malinowski
+ Adam Vandenberg
+ Adiyat Mubarak
+ Adnan Umer
+ Adrian Holovaty
+ Adrien Lemaire
+ Afonso Fernández Nogueira
+ AgarFu
+ Ahmad Alhashemi
+ Ahmad Al-Ibrahim
+ Ahmed Eltawela
+ ajs
+ Akash Agrawal
+ Akis Kesoglou
+ Aksel Ethem
+ Akshesh Doshi
+ alang@bright-green.com
+ Alasdair Nicol
+ Albert Wang
+ Alcides Fonseca
+ Aldian Fazrihady
+ Aleksandra Sendecka
+ Aleksi Häkli
+ Alexander Dutton
+ Alexander Myodov
+ Alexandr Tatarinov
+ Alex Aktsipetrov
+ Alex Becker
+ Alex Couper
+ Alex Dedul
+ Alex Gaynor
+ Alex Hill
+ Alex Ogier
+ Alex Robbins
+ Alexey Boriskin
+ Alexey Tsivunin
+ Ali Vakilzade
+ Aljosa Mohorovic
+ Amit Chakradeo
+ Amit Ramon
+ Amit Upadhyay
+ A. Murat Eren
+ Ana Belen Sarabia
+ Ana Krivokapic
+ Andi Albrecht
+ André Ericson
+ Andrei Kulakov
+ Andreas
+ Andreas Mock
+ Andreas Pelme
+ Andrés Torres Marroquín
+ Andrew Brehaut
+ Andrew Clark
+ Andrew Durdin
+ Andrew Godwin
+ Andrew Pinkham
+ Andrews Medina
+ Andriy Sokolovskiy
+ Andy Chosak
+ Andy Dustman
+ Andy Gayton
+ andy@jadedplanet.net
+ Anssi Kääriäinen
+ ant9000@netwise.it
+ Anthony Briggs
+ Anton Samarchyan
+ Antoni Aloy
+ Antonio Cavedoni
+ Antonis Christofides
+ Antti Haapala
+ Antti Kaihola
+ Anubhav Joshi
+ Aram Dulyan
+ arien
+ Armin Ronacher
+ Aron Podrigal
+ Artem Gnilov
+ Arthur
+ Arthur Koziel
+ Arthur Rio
+ Arvis Bickovskis
+ Aryeh Leib Taurog
+ A S Alam
+ Asif Saif Uddin
+ atlithorn
+ Audrey Roy
+ av0000@mail.ru
+ Axel Haustant
+ Aymeric Augustin
+ Bahadır Kandemir
+ Baishampayan Ghose
+ Baptiste Mispelon
+ Barry Pederson
+ Bartolome Sanchez Salado
+ Barton Ip
+ Bartosz Grabski
+ Bashar Al-Abdulhadi
+ Bastian Kleineidam
+ Batiste Bieler
+ Batman
+ Batuhan Taskaya
+ Baurzhan Ismagulov
+ Ben Dean Kawamura
+ Ben Firshman
+ Ben Godfrey
+ Benjamin Wohlwend
+ Ben Khoo
+ Ben Slavin
+ Ben Sturmfels
+ Berker Peksag
+ Bernd Schlapsi
+ Bernhard Essl
+ berto
+ Bill Fenner
+ Bjørn Stabell
+ Bo Marchman
+ Bogdan Mateescu
+ Bojan Mihelac
+ Bouke Haarsma
+ Božidar Benko
+ Brad Melin
+ Brandon Chinn
+ Brant Harris
+ Brendan Hayward
+ Brendan Quinn
+ Brenton Simpson
+ Brett Cannon
+ Brett Hoerner
+ Brian Beck
+ Brian Fabian Crain
+ Brian Harring
+ Brian Helba
+ Brian Ray
+ Brian Rosner
+ Bruce Kroeze
+ Bruno Alla
+ Bruno Renié
+ brut.alll@gmail.com
+ Bryan Chow
+ Bryan Veloso
+ bthomas
+ btoll@bestweb.net
+ C8E
+ Caio Ariede
+ Calvin Spealman
+ Cameron Curry
+ Cameron Knight (ckknight)
+ Can Burak Çilingir
+ Can Sarıgöl
+ Carl Meyer
+ Carles Pina i Estany
+ Carlos Eduardo de Paula
+ Carlos Matías de la Torre
+ Carlton Gibson
+ cedric@terramater.net
+ Chad Whitman
+ ChaosKCW
+ Charlie Leifer
+ charly.wilhelm@gmail.com
+ Chason Chaffin
+ Cheng Zhang
+ Chris Adams
+ Chris Beaven
+ Chris Bennett
+ Chris Cahoon
+ Chris Chamberlin
+ Chris Jerdonek
+ Chris Jones
+ Chris Lamb
+ Chris Streeter
+ Christian Barcenas
+ Christian Metts
+ Christian Oudard
+ Christian Tanzer
+ Christoffer Sjöbergsson
+ Christophe Pettus
+ Christopher Adams
+ Christopher Babiak
+ Christopher Lenz
+ Christoph Mędrela
+ Chris Wagner
+ Chris Wesseling
+ Chris Wilson
+ Claude Paroz
+ Clint Ecker
+ colin@owlfish.com
+ Colin Wood
+ Collin Anderson
+ Collin Grady
+ Colton Hicks
+ Craig Blaszczyk
+ crankycoder@gmail.com
+ Curtis Maloney (FunkyBob)
+ dackze+django@gmail.com
+ Dagur Páll Ammendrup
+ Dane Springmeyer
+ Dan Fairs
+ Daniel Alves Barbosa de Oliveira Vaz
+ Daniel Duan
+ Daniele Procida
+ Daniel Greenfeld
+ dAniel hAhler
+ Daniel Jilg
+ Daniel Lindsley
+ Daniel Poelzleithner
+ Daniel Pyrathon
+ Daniel Roseman
+ Daniel Tao
+ Daniel Wiesmann
+ Danilo Bargen
+ Dan Johnson
+ Dan Palmer
+ Dan Poirier
+ Dan Stephenson
+ Dan Watson
+ dave@thebarproject.com
+ David Ascher
+ David Avsajanishvili
+ David Blewett
+ David Brenneman
+ David Cramer
+ David Danier
+ David Eklund
+ David Foster
+ David Gouldin
+ david@kazserve.org
+ David Krauth
+ David Larlet
+ David Reynolds
+ David Sanders
+ David Schein
+ David Tulig
+ David Wobrock
+ Davide Ceretti
+ Deep L. Sukhwani
+ Deepak Thukral
+ Denis Kuzmichyov
+ Dennis Schwertel
+ Derek Willis
+ Deric Crago
+ deric@monowerks.com
+ Deryck Hodge
+ Dimitris Glezos
+ Dirk Datzert
+ Dirk Eschler
+ Dmitri Fedortchenko
+ Dmitry Jemerov
+ dne@mayonnaise.net
+ Dolan Antenucci
+ Donald Harvey
+ Donald Stufft
+ Don Spaulding
+ Doug Beck
+ Doug Napoleone
+ dready
+ dusk@woofle.net
+ Dustyn Gibson
+ Ed Morley
+ Egidijus Macijauskas
+ eibaan@gmail.com
+ elky
+ Emmanuelle Delescolle
+ Emil Stenström
+ enlight
+ Enrico
+ Eric Boersma
+ Eric Brandwein
+ Eric Floehr
+ Eric Florenzano
+ Eric Holscher
+ Eric Moritz
+ Eric Palakovich Carr
+ Erik Karulf
+ Erik Romijn
+ eriks@win.tue.nl
+ Erwin Junge
+ Esdras Beleza
+ Espen Grindhaug
+ Étienne Beaulé
+ Eugene Lazutkin
+ Evan Grim
+ Fabrice Aneche
+ Farhaan Bukhsh
+ favo@exoweb.net
+ fdr
+ Federico Capoano
+ Felipe Lee
+ Filip Noetzel
+ Filip Wasilewski
+ Finn Gruwier Larsen
+ Flávio Juvenal da Silva Junior
+ flavio.curella@gmail.com
+ Florian Apolloner
+ Florian Demmer
+ Florian Moussous
+ Fran Hrženjak
+ Francisco Albarran Cristobal
+ Francisco Couzo
+ François Freitag
+ Frank Tegtmeyer
+ Frank Wierzbicki
+ Frank Wiles
+ František Malina
+ Fraser Nevett
+ Gabriel Grant
+ Gabriel Hurley
+ gandalf@owca.info
+ Garry Lawrence
+ Garry Polley
+ Garth Kidd
+ Gary Wilson
+ Gasper Koren
+ Gasper Zejn
+ Gavin Wahl
+ Ge Hanbin
+ geber@datacollect.com
+ Geert Vanderkelen
+ George Karpenkov
+ George Song
+ George Vilches
+ Georg "Hugo" Bauer
+ Georgi Stanojevski
+ Gerardo Orozco
+ Gil Gonçalves
+ Girish Kumar
+ Gisle Aas
+ Glenn Maynard
+ glin@seznam.cz
+ GomoX
+ Gonzalo Saavedra
+ Gopal Narayanan
+ Graham Carlyle
+ Grant Jenks
+ Greg Chapple
+ Gregor Allensworth
+ Gregor Müllegger
+ Grigory Fateyev