From 086e59263dcf734b983f7dce96122910be8f6c5a Mon Sep 17 00:00:00 2001 From: Mohammed Ajlan <65132450+Moh248@users.noreply.github.com> Date: Tue, 26 Jul 2022 23:11:21 +0300 Subject: [PATCH] lab2 --- second_lab/db.sqlite3 | 0 second_lab/manage.py | 22 +++ second_lab/my_app/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 164 bytes .../my_app/__pycache__/admin.cpython-310.pyc | Bin 0 -> 205 bytes .../my_app/__pycache__/apps.cpython-310.pyc | Bin 0 -> 442 bytes .../my_app/__pycache__/models.cpython-310.pyc | Bin 0 -> 202 bytes .../my_app/__pycache__/urls.cpython-310.pyc | Bin 0 -> 362 bytes .../my_app/__pycache__/views.cpython-310.pyc | Bin 0 -> 1041 bytes second_lab/my_app/admin.py | 3 + second_lab/my_app/apps.py | 6 + second_lab/my_app/migrations/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 175 bytes second_lab/my_app/models.py | 3 + second_lab/my_app/tests.py | 3 + second_lab/my_app/urls.py | 9 ++ second_lab/my_app/views.py | 38 ++++++ second_lab/second_lab/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 168 bytes .../__pycache__/settings.cpython-310.pyc | Bin 0 -> 2327 bytes .../__pycache__/urls.cpython-310.pyc | Bin 0 -> 1002 bytes .../__pycache__/wsgi.cpython-310.pyc | Bin 0 -> 577 bytes second_lab/second_lab/asgi.py | 16 +++ second_lab/second_lab/settings.py | 126 ++++++++++++++++++ second_lab/second_lab/urls.py | 22 +++ second_lab/second_lab/wsgi.py | 16 +++ 26 files changed, 264 insertions(+) create mode 100644 second_lab/db.sqlite3 create mode 100644 second_lab/manage.py create mode 100644 second_lab/my_app/__init__.py create mode 100644 second_lab/my_app/__pycache__/__init__.cpython-310.pyc create mode 100644 second_lab/my_app/__pycache__/admin.cpython-310.pyc create mode 100644 second_lab/my_app/__pycache__/apps.cpython-310.pyc create mode 100644 second_lab/my_app/__pycache__/models.cpython-310.pyc create mode 100644 second_lab/my_app/__pycache__/urls.cpython-310.pyc create mode 100644 second_lab/my_app/__pycache__/views.cpython-310.pyc create mode 100644 second_lab/my_app/admin.py create mode 100644 second_lab/my_app/apps.py create mode 100644 second_lab/my_app/migrations/__init__.py create mode 100644 second_lab/my_app/migrations/__pycache__/__init__.cpython-310.pyc create mode 100644 second_lab/my_app/models.py create mode 100644 second_lab/my_app/tests.py create mode 100644 second_lab/my_app/urls.py create mode 100644 second_lab/my_app/views.py create mode 100644 second_lab/second_lab/__init__.py create mode 100644 second_lab/second_lab/__pycache__/__init__.cpython-310.pyc create mode 100644 second_lab/second_lab/__pycache__/settings.cpython-310.pyc create mode 100644 second_lab/second_lab/__pycache__/urls.cpython-310.pyc create mode 100644 second_lab/second_lab/__pycache__/wsgi.cpython-310.pyc create mode 100644 second_lab/second_lab/asgi.py create mode 100644 second_lab/second_lab/settings.py create mode 100644 second_lab/second_lab/urls.py create mode 100644 second_lab/second_lab/wsgi.py diff --git a/second_lab/db.sqlite3 b/second_lab/db.sqlite3 new file mode 100644 index 000000000..e69de29bb diff --git a/second_lab/manage.py b/second_lab/manage.py new file mode 100644 index 000000000..e9846201b --- /dev/null +++ b/second_lab/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', 'second_lab.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/second_lab/my_app/__init__.py b/second_lab/my_app/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/second_lab/my_app/__pycache__/__init__.cpython-310.pyc b/second_lab/my_app/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88759311b5d35e712fb1bada57038844db5166e0 GIT binary patch literal 164 zcmd1j<>g`kf(g10l0fuh5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!H!vsFxJacWU< zOhj&eN{mZtadt_5L5xdQVqSWFe2{B!NW71uQ@oL`QA}}aa(-S)d`@CgOm1a-VnIPn ge0*kJW=VX!UP0w84jZ8U(wtN~kOjp|K!Sw<0AG41W&i*H literal 0 HcmV?d00001 diff --git a/second_lab/my_app/__pycache__/admin.cpython-310.pyc b/second_lab/my_app/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0a64ac7c4f9da18f0aaac8276102a8525a1d069 GIT binary patch literal 205 zcmd1j<>g`kf(g10lAM6_V-N=!FabFZKwK;UBvKes7;_kM8KW2(8B&;n88n$+0!0}# z8E>&BrsQVk`Drpm@ug%X=B4NBCFkdr6lEqAfecv5P{a(Rz{D>XXRDad;?$zzn26l` zlo*%P;_Q4iqF5MLM}Xw<;uYh?}9T@Bl141h13{ ziHTQW;+$5{lkR*!pFe*--EKD+*<1H>_D<)QE%wc&qEBv)DIh~0vxJA7vrC2!idTk0 z@fQ&~=uVkm`z93gd3i9%vXM>~tL5Bw_Kj1~CpR4miiI2*-R7Y{Cv;H|i(59YH-7}r zNBAJqr4DcwBpOw0g5hd8DAxL7rD81W$p&PWP5fHv0i-ff0A&M!utjY17Qj;>-Hj} z<~l`)6UzE+=rz|#i?7J5IuV9-ssaJZZ+pnD2 L%^6GBVjb}dlNoKn literal 0 HcmV?d00001 diff --git a/second_lab/my_app/__pycache__/models.cpython-310.pyc b/second_lab/my_app/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9dc6ffd142b18914eb05ae36661583f4e250c581 GIT binary patch literal 202 zcmd1j<>g`kf(g10l5BwVV-N=!FabFZKwK;UBvKes7;_kM8KW2(8B&;n88n$+0!0}# z8E>)W=BK3Q6#Hp1-QrBiO3X{o*Gow%0%=~!P{abHz{D?CXRDad;?$zzmqnP5<uy`0qX%2)QAE^Myod*@AWI;mPN>$+?viYk_8s~lK8f#;li;bZ z;6a?R7YFiv^CdIiWa?foV;F~5pYspoFB1PFL2-u15dZ^TGQ$hb83YiPfeDKc^Qee4 zhggTp7!v4gLsTiM1P(|of}#W2j1BS~y08KFQKQDOyQtwX}jw=`P1A9NcPK zxp!uJ^g!@EnH-CIr>zqYrUo(9?xn38G5zzFx0ka!d3}B%$46t~^kZFtEY)1>|0`(p buvz=`1bbJdKBcu>7op3#JPP_@pQk^+k=9@= literal 0 HcmV?d00001 diff --git a/second_lab/my_app/__pycache__/views.cpython-310.pyc b/second_lab/my_app/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c775d911d46be481314ec0d383d0a19267811f6f GIT binary patch literal 1041 zcmZWnTWb?R6yCXHv)LqVyil!At8aNQNM8gIu{K2nsiln|LtvR?rs=kOb7s=ol0LQI zj}XD)lYeQS1fTp1ebF-$#i%pP;hZybF5h>iXtzTT*83M%ZB%_Qvo20eOXTH;ETF(L&IK7rOvXF&N_tPe8Lad**SX=s{K0)V5 z1Tx&iq9MWydXCr<_?rvwuR@e3ZyztMB~r*LUWRw<_{{bD#jUH%2z)uVoz;^#&Y$4}|d!&?kK9ogsk)o}mw( zARkGB&afdfe2$ZrZjXZ4(3c*jJL`PTXZkJYp^_nD;ssWj*nz7f)2fa&NY1SG~ z6#y}@eOVCz@WoS0@ZhSy@o4y3OQnZzvO)~|QXiV49QF@*J}Kgz&D}x#a{XDnc7JWC z<+#X2obu5yJBfK&4lQuqD^FbACZy8=h>)}}{SlCPH+1{e?%*%%7IzJf!`=sF<{iMy zR{^`zFlfMlAcs`l5!3)LGc?1O7}y}d2C;02n(!CxZXKx3k{kqor!3VlI-ZLntLmB5 znos2E!>z(Z>uFjXOVNwAQ^~cAN>v;sLPk7-=*aAIV~HIllZjN;%%cZDu_c~YSmp2y zAZwDFIlt8LtFA#kbsYq2|Nb17YVJ6mi)GtVIBzM=r`ZbF+J=NUL;;>tMu{WtHn_VT z))8(BJ-uHjGoBi)uubAmRhlNFd1Xr`TZN(~-cvl2$AvoV37C}Prchd0qS>u~?tk~_ zFtC;XZrwjubqG~g`kf(g10l0fuh5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_evsFxJacWU< zOhj&eN{mZtadt_5L5xdQVqSWFe2{B!NW71uQ@oL`QA}}aa(-S)d`@CgOm1a-VnIPn rZf1H>Vo7FxUU5u(d}dx|NqoFsLFFwD8=z68IjMFayNa2B1PcQIWj!nk literal 0 HcmV?d00001 diff --git a/second_lab/my_app/models.py b/second_lab/my_app/models.py new file mode 100644 index 000000000..71a836239 --- /dev/null +++ b/second_lab/my_app/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/second_lab/my_app/tests.py b/second_lab/my_app/tests.py new file mode 100644 index 000000000..7ce503c2d --- /dev/null +++ b/second_lab/my_app/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/second_lab/my_app/urls.py b/second_lab/my_app/urls.py new file mode 100644 index 000000000..5b2a13ec6 --- /dev/null +++ b/second_lab/my_app/urls.py @@ -0,0 +1,9 @@ +from django.urls import path +from . import views + +app_name = "my_app" + +urlpatterns = [ + path("date/", views.date, name="date"), + path("random/", views.random_num, name="random_num") +] diff --git a/second_lab/my_app/views.py b/second_lab/my_app/views.py new file mode 100644 index 000000000..8cd427ce3 --- /dev/null +++ b/second_lab/my_app/views.py @@ -0,0 +1,38 @@ +from django.shortcuts import render +from urllib import request, response +from rest_framework.decorators import api_view +from rest_framework.response import Response +from rest_framework.request import Request +import datetime +import random as rn +# Create your views here. + +#date +@api_view(['GET']) +def date(request: Request): + # return current date + current_date = datetime.date.today() + res = { + "date": f'Today is {current_date}!' + } + return Response(res) + +#random_num + +@api_view(['POST']) +def random_num(request: Request): + min = request.data['min'] + max = request.data['max'] + + if min > 0: + response_data = { + "random": rn.randint(min, max) + } + return Response(response_data) + + response_data= { + "message": "Not Allowed. Please provide a min that is bigger than 0" + } + return Response(response_data) + + diff --git a/second_lab/second_lab/__init__.py b/second_lab/second_lab/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/second_lab/second_lab/__pycache__/__init__.cpython-310.pyc b/second_lab/second_lab/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db6e19d8bb77a7c16f345604c0113e1f4f948c14 GIT binary patch literal 168 zcmd1j<>g`kf;T!3l0fuh5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HwvsFxJacWU< zOhj&eN{mZtadt_5L5xdQVqSWFe2{B!NW71uQ@oL`QA}}aa(-S)d`@B#GBZ9tGcU6w aK3=b&@)m~;(2UZYR6CF*#Y{kgg#iFbG$}~{ literal 0 HcmV?d00001 diff --git a/second_lab/second_lab/__pycache__/settings.cpython-310.pyc b/second_lab/second_lab/__pycache__/settings.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e88771e33ade69c0146045874fc0d8426091d25a GIT binary patch literal 2327 zcmb7FS#R4$5GHBrh+;WDay3Q^0s)%Jt*O*WbD>F1i?pLg7evZV2_pohUCC?nkh#k^ z=4<~(9@;z<=r1b3rviQIALv6-G#yg1t;zxFQsQ!VXXcyPZ)bM>VzI!%^Go^HZl%a^ zza@joCkumhc}D_GlxVoKj6$u0}f^0 z@n!+OS@>Q?Idc|)1c@k-72ffLN0;A<1Kup6S#u5*(HzdAE6W_3e=88)yn+_cBIqoj zrL?`8w$}(h5Y2gX-CRI7%ti3F1n*UJ)4Ya0GOwdsI#*h@%RI*w)P36<_!7m85pO`H zz8}D#=X=O zSAGE2n*i(j0hWjd9$cFd-;?0a_6YbS4*mkX;=&$dL;9p#Mt+aVBOfOb^nACBy)pon znLi{wT0V)nJc4I?Sn7w4BRPaJ$?u=7$@UO9!X%Jh+fIn-|M3;z{)D67VSl+2AB!!U z?L`}77KjIog#li@H+Z$a{`%=^xUxpQ!|>C)D@WGa!^gMRiT&#SqsRW<(>J&89zI%$ ztXF<-<*Sk#8l`-6bp#^==`0{!IVCk(nw|~8QLXQwlVn7q}p> z2Vik)+JeEx^pfqM=3Ia&v-*MU;v+veFthHlWe ze3D+8pc97Ei#VZh(zrgNb;9bw2NvOw-od`zJAfjQUv4J!HitHqa=s*$5T|mGdIw=xaP3zGZi>bMoX2u(4LHYC`EIaY$vZH%b%BMtrz~Dqy664&4QhA{@R8v%|Z9UE_t(KMca?O@e zZ8r31d4jVeIv_G6D{!4|WSm2|Z-)*$&3M#3qmUjtgyDNp0Vc=&k`QOL##XhV#bQIL zYe63BK6*YCdzw8%n^GtcWWm`&Q0h+ZP#h>MDdv!2ow&rYlcLxjY4}0(?4n3@;t@A= zYuFpGy)*l7E^0q2mex4NGl2Dr0yIJw2c&l%A%nfukeV|cqY~xd27sa|M<0)2fl1d# z*rD?HGW?)c7Y9A}4cvUtqQ zZz#H!Y<67GwMttvtQXpMaYofPI$Lp3snwc0nrc07>V_WARU5hiQ!oJ;qQ`}LRaI-+ zj?&iR*>?R3BcV7aByDFv!aN+H$X@y&DO*gEX zvSF>QuI-+s{J*=SyIdX~$N8@TBXsaHxa&FkEi@uGJ3Buk=ENCM$Y=7iVnGlEUf}bB i@Lv2&d@s%mIf2je;@{9O!kjqq{vj@jpbo!mKJyQce;*?N literal 0 HcmV?d00001 diff --git a/second_lab/second_lab/__pycache__/urls.cpython-310.pyc b/second_lab/second_lab/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5d7c5af388b30806097ef85cb5e8147c3c884bad GIT binary patch literal 1002 zcma)5U2EGg6tx|v$((fCPtaRxXzeZR$!ue7+OCDNhkn2a0avk<#F-@-N#54J_Sft$ z`Dw7H{e?Y@T`3MTgFyur*W&8jbI!dIySsq{>+I0oS#9EYjrec#E zLwOYkCtooGER_VO70(R2O<4>2GD3%hAk0zDN+ETE&_W7^*j$!kDGie83eQx z!c`Ev+8d4b8(k~G=sx0@(KjO#kHTP5V5JV`AdIw7|Hne;6_tiaWR2R=IRh-q{*i1< zeuPzOK=#6a7@hO1s7TJ2V1lh@q(NsFTYt{2F$kzYdrU6f3(=ynGTGR*X-8xX-;!){ z_pK?9W;-v$G6n;;l}6^k;*P>F_zBbNgl^r%gylT+YTr0s_nPec9eW<%_crZ|?+2T} z0(=Oc)V(x?@k!I^(}pn!)iR$;m}jRRv}8zlMvnB&v9EGXYu|{g2d##GbEJ87cKh{y zlFV)tm1_2p2{JpT>JyCO?AXp}dU@9O?*xL+0Ytqa&{ R2%GN=pFMYnouS+R{RiVKHzoi8 literal 0 HcmV?d00001 diff --git a/second_lab/second_lab/__pycache__/wsgi.cpython-310.pyc b/second_lab/second_lab/__pycache__/wsgi.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..024d8a49ff11f5f860a0d37558ba85b2b381df4e GIT binary patch literal 577 zcmYjP!D<^Z5Y?`oINdfS(9*N6hGaK{o2YS*}=4s;z_%z~_}#%sA+X;~>wlWV`D z&>ZtiIu&{<^b30GtWAjrG}34^^PZk$c6TF!_Gka+<@bP)Urn%SZ4BPvu!rabnGg|( zPz93!=ave~)}$2>2o~)hTcRzt?m~=O-^gTJgemE6-}>lNIvCR2=$S0&%+%BZ27)Pm zNvql{Aa`*T4IPEAm9b!{n*&|faD|5yP;M!wr4d&O4iqdw(Iv0tDy4Y|f=;Krs+7#R zlSWUc*zX+zm8J$NHDZ>l1T`9)OG{@`!9MbUXzpBPkCQ~0+{R+Tbz%N<%1xPoPF}`` z$=qB!lL)AkxhX-r)$?m5FobToYaNwc6^61WWksZjrDtLE^&@mh?~xJh*-V@dMRt8eT0PqX8cMy|9AuR zp482AuH4_j+vDuQLT$6pC|=eB`^A|m>#eTIKK9cwJ3BdLM+ZmQ1EtMn0~}X3e&^L% V{MYzFh;0DcWarV7@M#!@{{XMawJ`ty literal 0 HcmV?d00001 diff --git a/second_lab/second_lab/asgi.py b/second_lab/second_lab/asgi.py new file mode 100644 index 000000000..576c5c78c --- /dev/null +++ b/second_lab/second_lab/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for second_lab 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', 'second_lab.settings') + +application = get_asgi_application() diff --git a/second_lab/second_lab/settings.py b/second_lab/second_lab/settings.py new file mode 100644 index 000000000..8505f1b17 --- /dev/null +++ b/second_lab/second_lab/settings.py @@ -0,0 +1,126 @@ +""" +Django settings for second_lab project. + +Generated by 'django-admin startproject' using Django 4.0.6. + +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 + +# 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-3g^@@v=-u*2snqu&0*w_279#@ia^489oh=x#0q8*z_^oc*5)mu' + +# 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', + 'rest_framework', + 'my_app' + +] + +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 = 'second_lab.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 = 'second_lab.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/' + +# Default primary key field type +# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/second_lab/second_lab/urls.py b/second_lab/second_lab/urls.py new file mode 100644 index 000000000..ba9ceb869 --- /dev/null +++ b/second_lab/second_lab/urls.py @@ -0,0 +1,22 @@ +"""second_lab 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,include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('my_app/', include("my_app.urls")) +] diff --git a/second_lab/second_lab/wsgi.py b/second_lab/second_lab/wsgi.py new file mode 100644 index 000000000..8110593d7 --- /dev/null +++ b/second_lab/second_lab/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for second_lab 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', 'second_lab.settings') + +application = get_wsgi_application()