From 52edb6080b791953192839331105d12140e947b6 Mon Sep 17 00:00:00 2001 From: codeveloper-ysf Date: Tue, 24 Aug 2021 14:39:56 +0200 Subject: [PATCH 1/2] project is done --- db.sqlite3 | Bin 0 -> 139264 bytes enc_dec/__init__.py | 0 enc_dec/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 152 bytes enc_dec/__pycache__/admin.cpython-36.pyc | Bin 0 -> 265 bytes enc_dec/__pycache__/models.cpython-36.pyc | Bin 0 -> 612 bytes enc_dec/__pycache__/urls.cpython-36.pyc | Bin 0 -> 326 bytes enc_dec/__pycache__/views.cpython-36.pyc | Bin 0 -> 5495 bytes enc_dec/admin.py | 6 + enc_dec/apps.py | 5 + enc_dec/migrations/0001_initial.py | 22 +++ enc_dec/migrations/0002_method_image.py | 18 ++ enc_dec/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-36.pyc | Bin 0 -> 715 bytes .../0002_method_image.cpython-36.pyc | Bin 0 -> 581 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 163 bytes enc_dec/models.py | 10 + enc_dec/static/css/style.css | 43 +++++ enc_dec/templates/enc_dec/homepage.html | 51 +++++ enc_dec/templates/enc_dec/method.html | 67 +++++++ enc_dec/tests.py | 3 + enc_dec/urls.py | 6 + enc_dec/views.py | 179 ++++++++++++++++++ manage.py | 22 +++ proje/__init__.py | 0 proje/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 158 bytes proje/__pycache__/settings.cpython-36.pyc | Bin 0 -> 2368 bytes proje/__pycache__/urls.cpython-36.pyc | Bin 0 -> 980 bytes proje/__pycache__/wsgi.cpython-36.pyc | Bin 0 -> 541 bytes proje/asgi.py | 16 ++ proje/settings.py | 125 ++++++++++++ proje/urls.py | 22 +++ proje/wsgi.py | 16 ++ 32 files changed, 611 insertions(+) create mode 100644 db.sqlite3 create mode 100644 enc_dec/__init__.py create mode 100644 enc_dec/__pycache__/__init__.cpython-36.pyc create mode 100644 enc_dec/__pycache__/admin.cpython-36.pyc create mode 100644 enc_dec/__pycache__/models.cpython-36.pyc create mode 100644 enc_dec/__pycache__/urls.cpython-36.pyc create mode 100644 enc_dec/__pycache__/views.cpython-36.pyc create mode 100644 enc_dec/admin.py create mode 100644 enc_dec/apps.py create mode 100644 enc_dec/migrations/0001_initial.py create mode 100644 enc_dec/migrations/0002_method_image.py create mode 100644 enc_dec/migrations/__init__.py create mode 100644 enc_dec/migrations/__pycache__/0001_initial.cpython-36.pyc create mode 100644 enc_dec/migrations/__pycache__/0002_method_image.cpython-36.pyc create mode 100644 enc_dec/migrations/__pycache__/__init__.cpython-36.pyc create mode 100644 enc_dec/models.py create mode 100644 enc_dec/static/css/style.css create mode 100644 enc_dec/templates/enc_dec/homepage.html create mode 100644 enc_dec/templates/enc_dec/method.html create mode 100644 enc_dec/tests.py create mode 100644 enc_dec/urls.py create mode 100644 enc_dec/views.py create mode 100644 manage.py create mode 100644 proje/__init__.py create mode 100644 proje/__pycache__/__init__.cpython-36.pyc create mode 100644 proje/__pycache__/settings.cpython-36.pyc create mode 100644 proje/__pycache__/urls.cpython-36.pyc create mode 100644 proje/__pycache__/wsgi.cpython-36.pyc create mode 100644 proje/asgi.py create mode 100644 proje/settings.py create mode 100644 proje/urls.py create mode 100644 proje/wsgi.py diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..337ba599c1a972045edb6d048dcc83383b76e5a4 GIT binary patch literal 139264 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 d);C62Bbq)X@6icj literal 0 HcmV?d00001 diff --git a/enc_dec/__init__.py b/enc_dec/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/enc_dec/__pycache__/__init__.cpython-36.pyc b/enc_dec/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4cd433ca5b125e7571b1c7dd97c3d7526f63d2e6 GIT binary patch literal 152 zcmXr!<>eA?Fp6gYg2x~N1{i@12OutH0TL+;!3>&=ek&P@K*9*(m#ec?OlWaxQE^OV zX>n;U1 literal 0 HcmV?d00001 diff --git a/enc_dec/__pycache__/admin.cpython-36.pyc b/enc_dec/__pycache__/admin.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..658198ae219bff204758ef167b41d34cce039bb3 GIT binary patch literal 265 zcmX|5K}y6x5bVw*A;_-pFqb{(O+-Y!>P5VSfhDGU_@61KYlcM*tyu!jLFM4*I3pA4cB2#j6YWi0m5PhX(S z4&fR~T(X)5r4M*g`4jthL(gSiol{rq)@&N1y;W~E<}CSOh;lx#2@x+MuGqU literal 0 HcmV?d00001 diff --git a/enc_dec/__pycache__/models.cpython-36.pyc b/enc_dec/__pycache__/models.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5e2bef78cf5a83a639fd65eb1b762ee56cf60b5 GIT binary patch literal 612 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 literal 0 HcmV?d00001 diff --git a/enc_dec/models.py b/enc_dec/models.py new file mode 100644 index 0000000..d0d75ea --- /dev/null +++ b/enc_dec/models.py @@ -0,0 +1,10 @@ +from django.db import models + +# Create your models here. +class Method(models.Model): + name = models.CharField(max_length=200, blank=True, null=True) + explanation = models.TextField(blank=True, null=True) + image = models.TextField(blank=True, null=True) + + def __str__(self): + return self.name \ No newline at end of file diff --git a/enc_dec/static/css/style.css b/enc_dec/static/css/style.css new file mode 100644 index 0000000..f4a5186 --- /dev/null +++ b/enc_dec/static/css/style.css @@ -0,0 +1,43 @@ +body { + background-color: rgb(240, 240, 240) !important; +} +.main { + display: flex; + flex-direction: row; + justify-content: center; +} +div { + margin: 1%; +} +h1 { + text-align: center; + padding-top: 1%; +} +.card-text { + min-height: 50px; +} +p { + text-align: justify; +} +#method_head { + text-align: center; + font-size: 3rem; + margin-bottom: 5%; + font-weight: bold; +} +#result { + color: red; + font-weight: bold; + text-align: center; + font-size: xx-large; + margin-top: 10%; +} +#translate { + position: absolute; + left: 47%; + margin: 2% 0%; +} +#home_button{ + margin-right: 5%; + float: right; +} \ No newline at end of file diff --git a/enc_dec/templates/enc_dec/homepage.html b/enc_dec/templates/enc_dec/homepage.html new file mode 100644 index 0000000..cda15c4 --- /dev/null +++ b/enc_dec/templates/enc_dec/homepage.html @@ -0,0 +1,51 @@ +{% load static %} + + + + + + Enc_Dec + + + + +

Encryption / Decryption Program

+
+
+ {% for method in methods %} +
+ caesar +
+
{{ method.name }}
+

+ {{ method.explanation|linebreaksbr }} +

+ Encrypt / Decrypt +
+
+ {% endfor %} +
+ + + + + diff --git a/enc_dec/templates/enc_dec/method.html b/enc_dec/templates/enc_dec/method.html new file mode 100644 index 0000000..45575d8 --- /dev/null +++ b/enc_dec/templates/enc_dec/method.html @@ -0,0 +1,67 @@ +{% load static %} + + + + + + Document + + + + +
+

{{method.name}}

+
+
+ +
+ +
+
+ + + {% if method.name == 'Caesar Cipher' %} + + + {% elif method.name == 'Vigenere Cipher' %} + + + {% elif method.name == 'Shifting' %} + + + {% endif %} +
+ +
+ +

>> {{result}} <<

+
+ Go To Home + + + + + diff --git a/enc_dec/tests.py b/enc_dec/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/enc_dec/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/enc_dec/urls.py b/enc_dec/urls.py new file mode 100644 index 0000000..1287020 --- /dev/null +++ b/enc_dec/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.homePage, name='homePage'), + path('method//', views.cipher, name='method'),] \ No newline at end of file diff --git a/enc_dec/views.py b/enc_dec/views.py new file mode 100644 index 0000000..f3efcdc --- /dev/null +++ b/enc_dec/views.py @@ -0,0 +1,179 @@ +from django.shortcuts import render +import math +import random +from .models import Method +# Create your views here. + + +def homePage(request): + methods = Method.objects.all() + return render(request, 'enc_dec/homepage.html', {'methods': methods}) + + +def cipher(request, pk): + method = Method.objects.get(pk=pk) + message = request.GET.get("message") + encrypt = request.GET.get("crypt") + result = "" + if(method.name == "Caesar Cipher"): + shiftPattern = request.GET.get("shiftPattern") + if(message != None and shiftPattern != None): + if(encrypt == "true"): + result = Caesar.encryption(message, int(shiftPattern)) + else: + result = Caesar.decryption(message, int(shiftPattern)) + elif(method.name == "Vigenere Cipher"): + key = request.GET.get("key") + if(message != None and key != None): + if(len(key) <= len(message)): + if(encrypt == "true"): + result = Vigenere.encryption(message, key) + else: + result = Vigenere.decryption(message, key) + else: + result = "Error: len(vigenere_key)>len(message)" + elif(method.name == "Shifting"): + shiftPattern = request.GET.get("shiftPattern") + if(message != None and shiftPattern != None): + if(encrypt == "true"): + result = Shifting.encryption(message, int(shiftPattern)) + else: + result = Shifting.decryption(message, int(shiftPattern)) + elif(method.name == "Private Library"): + if(message != None): + if(encrypt == "true"): + result = Private.encryption(message) + else: + result = Private.decryption(message) + return render(request, 'enc_dec/method.html', {"method": method, "result": result}) + + +class Caesar(): + def encryption(text, s): + result = "" + for i in range(len(text)): + char = text[i] + if (char.isupper()): + result += chr((ord(char) + s-65) % 26 + 65) + else: + result += chr((ord(char) + s - 97) % 26 + 97) + return result + + def decryption(message, key): + key = -key + encrypted = '' + for symbol in message: + if symbol.isalpha(): + num = ord(symbol) + num += key + if symbol.isupper(): + if num > ord('Z'): + num -= 26 + elif num < ord('A'): + num += 26 + elif symbol.islower(): + if num > ord('z'): + num -= 26 + elif num < ord('a'): + num += 26 + encrypted += chr(num) + else: + encrypted += symbol + return encrypted + + +class Vigenere(): + + def new_alph(char): + char = char.lower() + alph = 'abcdefghijklmnopqrstuvwxyz' + new_alph = alph[alph.index(char):] + alph[:alph.index(char)] + return new_alph + + def encryption(text, big_key): + res = '' + alph = 'abcdefghijklmnopqrstuvwxyz' + if len(big_key) <= len(text): + big_key = big_key * (len(text) // len(big_key)) + \ + big_key[:len(text) % len(big_key)] + i = 1 + for char in big_key: + new = Vigenere.new_alph(char) + for t in text: + if alph.count(t) == 1: + res += new[alph.index(t)] + text = text[i:] + break + elif alph.count(t.lower()) == 1: + res += new[alph.index(t.lower())].upper() + text = text[i:] + break + else: + res += t + text = text[i:] + break + i += 1 + return res + + def decryption(text, big_key): + res = '' + alph = 'abcdefghijklmnopqrstuvwxyz' + if len(big_key) <= len(text): + big_key = big_key * (len(text) // len(big_key)) + \ + big_key[:len(text) % len(big_key)] + i = 1 + for char in big_key: + new = Vigenere.new_alph(char) + for t in text: + if alph.count(t) == 1: + res += alph[new.index(t)] + text = text[i:] + break + elif alph.count(t.lower()) == 1: + res += alph[new.index(t.lower())].upper() + text = text[i:] + break + else: + res += t + text = text[i:] + break + i += 1 + return res + + +class Shifting(): + def encryption(message, key): + leftFirst = message[0 : key] + leftSecond = message[key :] + return (leftSecond + leftFirst) + + def decryption(message, key): + rightFirst = message[0: len(message)-key] + rightSecond = message[len(message)-key : ] + return (rightSecond + rightFirst) + + +class Private(): + encryption_letters = {'a': 'b', 'b': 'e', 'c': 'v', 'd': 'j', 'e': 'Q', 'f': 'w', 'g': 'T', 'h': 'l', 'i': 'O', 'j': 'y', 'k': 'A', 'l': 'W', 'm': 'N', + 'n': 'c', 'o': 'h', 'p': 'F', 'q': 'o', 'r': 'D', 's': 'M', 't': 'C', 'u': 'J', 'x': 'L', 'w': 'Y', 'v': 'I', 'y': 'x', 'z': 'E', + 'A': 'K', 'B': 'X', 'C': 'B', 'D': 'i', 'E': 'R', 'F': 'd', 'G': 'S', 'H': 'H', 'I': 'n', 'J': 'P', 'K': 'f', 'L': 'U', 'M': 's', + 'N': 'r', 'O': 'g', 'P': 't', 'Q': 'Z', 'R': 'G', 'S': 'm', 'T': 'z', 'U': 'q', 'X': 'V', 'W': 'p', 'V': 'u', 'Y': 'k', 'Z': 'a', + ' ': '.', '?': '!', '.': '?', '!': "'", "'": ' '} + + decryption_letters = {'a': 'Z', 'b': 'a', 'e': 'b', 'v': 'c', 'j': 'd', 'Q': 'e', 'w': 'f', 'T': 'g', 'l': 'h', 'O': 'i', 'y': 'j', 'A': 'k', + 'W': 'l', 'N': 'm', 'c': 'n', 'h': 'o', 'F': 'p', 'o': 'q', 'D': 'r', 'M': 's', 'C': 't', 'J': 'u', 'L': 'x', + 'Y': 'w', 'I': 'v', 'x': 'y', 'E': 'z', 'K': 'A', 'X': 'B', 'B': 'C', 'i': 'D', 'R': 'E', 'd': 'F', 'S': 'G', + 'H': 'H', 'n': 'I', 'P': 'J', 'f': 'K', 'U': 'L', 's': 'M', 'r': 'N', 'g': 'O', 't': 'P', 'Z': 'Q', 'G': 'R', + 'm': 'S', 'z': 'T', 'q': 'U', 'V': 'X', 'p': 'W', 'u': 'V', 'k': 'Y', '.': ' ', '!': '?', '?': '.', "'": '!', ' ': "'"} + + def encryption(message): + encrypted = "" + for i in message: + encrypted += Private.encryption_letters[i] + return encrypted + + def decryption(message): + decrypted = "" + for i in message: + decrypted += Private.decryption_letters[i] + return decrypted diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..25b6a21 --- /dev/null +++ b/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proje.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/proje/__init__.py b/proje/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/proje/__pycache__/__init__.cpython-36.pyc b/proje/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..13d5abbbe9b2ae6a189571dee5295ac024a3daef GIT binary patch literal 158 zcmXr!<>m6MGm2*bg2x~N1{i@12OutH0TL+;!3>&=ek&P@K*9*(m$$Q3OlWaxQE^OV zX>n;HIJ869m7T_E#!g;s=7hwq{^KeODfXi^DBOuCExCYl@8E$k$OMsi7#Ezh! zgKzXj_!cCRfm_Q7`0i8E67=)10=H3T1@6T3ZcOi4LPyjuzb7V9QBmMc+a`YhIOv3pWL5kne5Zps^IyN!5`=M%|t5!x}C<+&36 zS=T~mmQ5a@Z<6gY)~C<&dGK0P9(ov|$}P{y6E}}=dFJ)47R?_8n;*inE|J=SZA-RA zndG%kHe(;?@c=(^#AzsNqfxEUsw={YEIzduF1M}WKxv*R*Qv?x+@#EKCB)- z{qQ~{5CnG~+3ZQrcpUV%tij-6XtJh#yS?>fYjx#W^M|#y&f_p#8txFc<|0T_j&m7a zoRkKv8!k@>BNO5>Hs})?UYS^=gi_4!=>-QD%nn*ypR{0jBCY5gsGcTn%K*{}*GEc@ z1z?jy(Z4!Rx2*VF~iAC9A#|WxH8P*nAOv-Y{Ir$Z+m9zEw+OE%eHSi zq}GqBo{rgN)E&Syts5|+ zS&n6!QFFW*YIuJ5;;cv&%e9=qDHFHDx+nHOpVfZYE4!l@PXM;g3Q!Fkf^+ON!ZdN$ z1FBCo>II$%GkKi!*fx0`=U&9*Zt}EY;J7vnJ?&Ask7JQ1J<8J&XIo7_i7Dk7!-$59 zVeqt1sAs#0nA{1azXgpgf6^mtcU)fXn++M9#HyV58Lan;ZXXaUDlMbq|cdqv}oQZC_Q4a;u6tWx#+ea&p5^kzp?tekR<*dYe^2;# zF-?De;6)3aKd(-$fyrJd!S?#B{_jWK&bomCYc+@Iq5D`2}pB BA8r5u literal 0 HcmV?d00001 diff --git a/proje/__pycache__/urls.cpython-36.pyc b/proje/__pycache__/urls.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e25d75498c86529f4dd7ff435874b9eff855d2f4 GIT binary patch literal 980 zcma)5!EVz)5M4V?6WkW~guSJfiVf{80t6})Dj^O)FIFUX>zz0b-d$^VT}ZFF@GJZW zU*Rh!et{FSjw3~tkZQ@R@o47FdvC|5hlk;>A17HdAmlgMd4?Fj!q>Qilaz3e`;{mB z)c0IGs0JcP12Ig89)W-d;4k-&#d4Zt*{_$;ig%`{24%1z9dOctuvY6-cGb0rdx$!YvFv8pa}leppp$D1U4`<)5I zGSl$9k-1~H8QXzAi|K35DU-AmwbFJ<>0B#8#VTWU-6wbIPx|^!G78vHh^;7gaWt76 z_qrBJz%i9fz>A5CCsBA-F=L)wqcFaM`ac%RE}dKoh!oPFjwax%KCwGln7+ydGBzM-iR(R!%o|ZLTABhHpvswa1+)_hx%t zsUkrGx05C=(cw;_DExz)OCqlwGA>FP`EB4FZ%2Lg?OvBpT5@{;GS4{VUF*l_K|9Ja zT%0URANE{PqSfWK#w{l8{*C~RKMv7>O9!U3&<0LcyT5bQKZ)LVMeg|f?rb`{G@#9F z)tF{JdjsYxZsDw6*@cp`ZbxS~inF;&E(E{;=W0@?H zxTX@f=^{-KBDT&$Ddm z34Al!fg^qe1;BmpRUF?A208Q9U*t% zy-e<79Vn`*+%;C;E4AF*(^48^7rMt yi}J>Sb>(j3Hg!1$_tk4tnw?*1Rdxyf(>*9RyD)fl_~+My=;ij(!vp*f5Ai=tzpLK> literal 0 HcmV?d00001 diff --git a/proje/asgi.py b/proje/asgi.py new file mode 100644 index 0000000..e082421 --- /dev/null +++ b/proje/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for proje project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proje.settings') + +application = get_asgi_application() diff --git a/proje/settings.py b/proje/settings.py new file mode 100644 index 0000000..ff5acad --- /dev/null +++ b/proje/settings.py @@ -0,0 +1,125 @@ +""" +Django settings for proje project. + +Generated by 'django-admin startproject' using Django 3.1. + +For more information on this file, see +https://docs.djangoproject.com/en/3.1/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.1/ref/settings/ +""" +import os.path +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve(strict=True).parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'h#1!x*w6xvzeduu%2lt5j_4up@iyy0zatbl$f@5@*#8b9++g4z' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'enc_dec', +] + +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 = 'proje.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': ['templates'], + '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 = 'proje.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/3.1/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/3.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/3.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/3.1/howto/static-files/ + +STATIC_ROOT = '' + +STATIC_URL = '/static/' + +STATICFILES_DIRS = ( os.path.join('static'), ) \ No newline at end of file diff --git a/proje/urls.py b/proje/urls.py new file mode 100644 index 0000000..485bbcc --- /dev/null +++ b/proje/urls.py @@ -0,0 +1,22 @@ +"""crypto URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/3.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('', include('enc_dec.urls')) +] \ No newline at end of file diff --git a/proje/wsgi.py b/proje/wsgi.py new file mode 100644 index 0000000..3f26ae3 --- /dev/null +++ b/proje/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for proje project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proje.settings') + +application = get_wsgi_application() From 2fd12b4ed8f79f5108e0bcb8db71f7b7cd6c6a9d Mon Sep 17 00:00:00 2001 From: Yusuf <61010065+codeveloper-ysf@users.noreply.github.com> Date: Tue, 24 Aug 2021 15:15:49 +0200 Subject: [PATCH 2/2] Create README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..a92b9d7 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Encryption-Decryption-Program +This is an Encryption-Decryption project which is built for completing 10 weeks Python Course by VodafoneZiggo. + +This project is Django framework based, so you should run the project by using "pythong manage.py runserver" command in your terminal.