-
Notifications
You must be signed in to change notification settings - Fork 0
Django-backend #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| """ | ||
| ASGI config for backend 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/4.0/howto/deployment/asgi/ | ||
| """ | ||
|
|
||
| import os | ||
|
|
||
| from django.core.asgi import get_asgi_application | ||
|
|
||
| os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings') | ||
|
|
||
| application = get_asgi_application() |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,125 @@ | ||
| """ | ||
| Django settings for backend project. | ||
| Generated by 'django-admin startproject' using Django 4.0.5. | ||
| For more information on this file, see | ||
| https://docs.djangoproject.com/en/4.0/topics/settings/ | ||
| For the full list of settings and their values, see | ||
| https://docs.djangoproject.com/en/4.0/ref/settings/ | ||
| """ | ||
|
|
||
| from pathlib import Path | ||
| import os | ||
|
|
||
| # Build paths inside the project like this: BASE_DIR / 'subdir'. | ||
| BASE_DIR = Path(__file__).resolve().parent.parent | ||
|
|
||
|
|
||
| # Quick-start development settings - unsuitable for production | ||
| # See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ | ||
|
|
||
| # SECURITY WARNING: keep the secret key used in production secret! | ||
| SECRET_KEY = 'django-insecure-zjnqabq%c2lpq$jgg12z8q6foq^q2i94cr02q76&(2stpwn#a8' | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should not commit the secret key to a public repo. Let's find out where to store it instead |
||
|
|
||
| # SECURITY WARNING: don't run with debug turned on in production! | ||
| DEBUG = True | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Similarly, we should set this to False in the repo, and have a way to make it True when we test the website locally. |
||
|
|
||
| ALLOWED_HOSTS = [] | ||
|
|
||
|
|
||
| # Application definition | ||
|
|
||
| INSTALLED_APPS = [ | ||
| 'django.contrib.admin', | ||
| 'django.contrib.auth', | ||
| 'django.contrib.contenttypes', | ||
| 'django.contrib.sessions', | ||
| 'django.contrib.messages', | ||
| 'django.contrib.staticfiles', | ||
| ] | ||
|
|
||
| MIDDLEWARE = [ | ||
| 'django.middleware.security.SecurityMiddleware', | ||
| 'django.contrib.sessions.middleware.SessionMiddleware', | ||
| 'django.middleware.common.CommonMiddleware', | ||
| 'django.middleware.csrf.CsrfViewMiddleware', | ||
| 'django.contrib.auth.middleware.AuthenticationMiddleware', | ||
| 'django.contrib.messages.middleware.MessageMiddleware', | ||
| 'django.middleware.clickjacking.XFrameOptionsMiddleware', | ||
| ] | ||
|
|
||
| ROOT_URLCONF = 'backend.urls' | ||
|
|
||
| TEMPLATES = [ | ||
| { | ||
| 'BACKEND': 'django.template.backends.django.DjangoTemplates', | ||
| 'DIRS': [BASE_DIR/'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 = 'backend.wsgi.application' | ||
|
|
||
|
|
||
| # Database | ||
| # https://docs.djangoproject.com/en/4.0/ref/settings/#databases | ||
|
|
||
| DATABASES = { | ||
| 'default': { | ||
| 'ENGINE': 'django.db.backends.sqlite3', | ||
| 'NAME': BASE_DIR / 'db.sqlite3', | ||
| } | ||
| } | ||
|
|
||
|
|
||
| # Password validation | ||
| # https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators | ||
|
|
||
| AUTH_PASSWORD_VALIDATORS = [ | ||
| { | ||
| 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', | ||
| }, | ||
| { | ||
| 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', | ||
| }, | ||
| { | ||
| 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', | ||
| }, | ||
| { | ||
| 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', | ||
| }, | ||
| ] | ||
|
|
||
|
|
||
| # Internationalization | ||
| # https://docs.djangoproject.com/en/4.0/topics/i18n/ | ||
|
|
||
| LANGUAGE_CODE = 'en-us' | ||
|
|
||
| TIME_ZONE = 'UTC' | ||
|
|
||
| USE_I18N = True | ||
|
|
||
| USE_TZ = True | ||
|
|
||
|
|
||
| # Static files (CSS, JavaScript, Images) | ||
| # https://docs.djangoproject.com/en/4.0/howto/static-files/ | ||
|
|
||
| STATIC_URL = '/static/' | ||
| STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] | ||
|
|
||
| # Default primary key field type | ||
| # https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field | ||
|
|
||
| DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| """backend URL Configuration | ||
|
|
||
| The `urlpatterns` list routes URLs to views. For more information please see: | ||
| https://docs.djangoproject.com/en/4.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 | ||
| from . import views | ||
|
|
||
| urlpatterns = [ | ||
| path('admin/', admin.site.urls), | ||
| path('', views.index_page, name="index"), | ||
| path('signup', views.signup_page, name="signup"), | ||
| path('homepage', views.index_page, name="homepage") | ||
| ] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| from django.shortcuts import render,HttpResponse,HttpResponseRedirect | ||
| from django.contrib.auth import authenticate, login, logout | ||
| from django.contrib import messages | ||
| from django.contrib.auth.models import User | ||
|
|
||
| # Create your views here. | ||
|
|
||
| def index_page(request): | ||
| return render(request,'index.html') | ||
|
|
||
| def login_page(request): | ||
| if request.method =="POST": | ||
| username = request.POST['username'] | ||
| password = request.POST['password'] | ||
| user = authenticate(request, username=username, password=password) | ||
| if user is not None: | ||
| login(request, user) | ||
| return HttpResponseRedirect("homepage") | ||
| else: | ||
| messages.warning(request, "Invalid credintials please try again!!") | ||
| return HttpResponseRedirect("/") | ||
| else: | ||
| return HttpResponse(render(request,'login_page.html')) | ||
|
|
||
| def signup_page(request): | ||
| if request.method == "POST": | ||
| username = request.POST['username'] | ||
| # email = request.POST['email'] | ||
| pswd1 = request.POST['pswd1'] | ||
| pswd2 = request.POST['pswd2'] | ||
| if pswd1 == pswd2: | ||
| if User.objects.all().filter(username=username).exists(): | ||
| messages.warning(request,'Username Already Exists') | ||
| return HttpResponseRedirect('signup') | ||
| else: | ||
| new_user = User.objects.create_user(username, password=pswd1) | ||
| new_user.save(); | ||
| messages.success(request,"Successfully create an account please, login now") | ||
| return HttpResponseRedirect('signup') | ||
| else: | ||
| messages.warning(request,'password doesnt match') | ||
| return HttpResponseRedirect('signup') | ||
|
|
||
| else: | ||
| return HttpResponse(render(request, 'signup.html')) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| """ | ||
| WSGI config for backend 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/4.0/howto/deployment/wsgi/ | ||
| """ | ||
|
|
||
| import os | ||
|
|
||
| from django.core.wsgi import get_wsgi_application | ||
|
|
||
| os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings') | ||
|
|
||
| application = get_wsgi_application() |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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', 'backend.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() |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,11 @@ | ||
| <!-- @format --> | ||
|
|
||
| {% load static %} | ||
| <html> | ||
|
|
||
| <head> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
|
|
||
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/9000.0.1/themes/prism.min.css" | ||
| integrity="sha512-/mZ1FHPkg6EKcxo0fKXF51ak6Cr2ocgDi5ytaTBjsQZIH/RNs6GF6+oId/vPe3eJB836T36nXwVh/WBl/cWT4w==" | ||
| crossorigin="anonymous" referrerpolicy="no-referrer" /> | ||
|
|
@@ -34,8 +38,9 @@ | |
|
|
||
| .editor { | ||
| border-radius: 6px; | ||
| box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); | ||
| font-family: 'Source Code Pro', monospace; | ||
| box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), | ||
| 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); | ||
| font-family: "Source Code Pro", monospace; | ||
| font-size: 14px; | ||
| font-weight: 400; | ||
| height: 340px; | ||
|
|
@@ -52,18 +57,19 @@ | |
| <h2>PyDojo</h2> | ||
| <h3>Problem: Sum of 1 to n</h3> | ||
| <p> | ||
| Write a function <code>sum_to(n)</code> that adds up all the numbers from <code>1</code> up to <code>n</code>. | ||
| If you call <code>sum_to(10)</code>, for example, it should return <code>55</code>. | ||
| Write a function <code>sum_to(n)</code> that adds up all the numbers from | ||
| <code>1</code> up to <code>n</code>. If you call <code>sum_to(10)</code>, | ||
| for example, it should return <code>55</code>. | ||
| </p> | ||
| <form> | ||
| <div class="editor language-python"> </div> | ||
| <textarea id="defaultcode" style="display: none;"> | ||
| <div class="editor language-python"></div> | ||
| <textarea id="defaultcode" style="display: none"> | ||
| def sum_to(n): | ||
| # Your code goes here | ||
|
|
||
| print(sum_to(10)) # Expected: 55 | ||
| </textarea><br /> | ||
| <textarea id="unittests" style="display: none;"> | ||
| <textarea id="unittests" style="display: none"> | ||
| tests = [(n, sum(range(n+1))) for n in [0,10,15,100,98765]] | ||
| for n, ans in tests: | ||
| assert ans == sum_to(n), f"sum_to({n}) should be {ans} but was {sum_to(n)}" | ||
|
|
@@ -74,9 +80,10 @@ <h3>Problem: Sum of 1 to n</h3> | |
| </form> | ||
| <pre id="output"></pre> | ||
|
|
||
| <script src="codejar.min.js" type="text/javascript"></script> | ||
| <script src="linenumbers.min.js" type="text/javascript"></script> | ||
| <script src="index.js" type="text/javascript"></script> | ||
| <script src=" {% static 'js/codejar.min.js' %}" type="text/javascript"></script> | ||
| <script src="{% static 'js/codejar.min.js' %}" type="text/javascript"></script> | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This JS file is being imported twice. |
||
| <script src=" {% static 'js/linenumbers.min.js' %}" type="text/javascript"></script> | ||
| <script type="text/javascript" src="{% static 'js/script.js' %}"></script> | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This expects |
||
| </body> | ||
|
|
||
| </html> | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When I go to this link, it says "This document is for an insecure version of Django that is no longer supported. Please upgrade to a newer release!". Maybe we should use v4.2?