From b27dbd4d3a3f9f126e252b67a54a39a087e7f204 Mon Sep 17 00:00:00 2001 From: Emily Vu <41875226+evu725@users.noreply.github.com> Date: Sat, 13 Dec 2025 02:44:39 +0000 Subject: [PATCH] Completed django tutorial --- src/db.sqlite3 | Bin 0 -> 139264 bytes src/manage.py | 22 ++++ src/pages/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 141 bytes src/pages/__pycache__/admin.cpython-312.pyc | Bin 0 -> 185 bytes src/pages/__pycache__/apps.cpython-312.pyc | Bin 0 -> 445 bytes src/pages/__pycache__/models.cpython-312.pyc | Bin 0 -> 182 bytes src/pages/__pycache__/views.cpython-312.pyc | Bin 0 -> 405 bytes src/pages/admin.py | 3 + src/pages/apps.py | 6 + src/pages/migrations/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 152 bytes src/pages/models.py | 3 + src/pages/tests.py | 3 + src/pages/views.py | 6 + src/products/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 144 bytes .../__pycache__/admin.cpython-312.pyc | Bin 0 -> 322 bytes src/products/__pycache__/apps.cpython-312.pyc | Bin 0 -> 454 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 852 bytes src/products/admin.py | 6 + src/products/apps.py | 6 + src/products/migrations/0001_initial.py | 31 +++++ ...product_description_alter_product_price.py | 23 ++++ .../migrations/0003_product_featured.py | 19 +++ .../migrations/0004_alter_product_summary.py | 18 +++ .../migrations/0005_alter_product_summary.py | 18 +++ src/products/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 1105 bytes ...iption_alter_product_price.cpython-312.pyc | Bin 0 -> 940 bytes .../0003_product_featured.cpython-312.pyc | Bin 0 -> 785 bytes ...0004_alter_product_summary.cpython-312.pyc | Bin 0 -> 732 bytes ...0005_alter_product_summary.cpython-312.pyc | Bin 0 -> 721 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 155 bytes src/products/models.py | 10 ++ src/products/tests.py | 3 + src/products/views.py | 3 + src/profiles/__init__.py | 0 src/profiles/admin.py | 3 + src/profiles/apps.py | 6 + src/profiles/migrations/__init__.py | 0 src/profiles/models.py | 3 + src/profiles/tests.py | 3 + src/profiles/views.py | 3 + src/trydjango/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 145 bytes .../__pycache__/settings.cpython-312.pyc | Bin 0 -> 2503 bytes .../__pycache__/urls.cpython-312.pyc | Bin 0 -> 1108 bytes .../__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 637 bytes src/trydjango/asgi.py | 16 +++ src/trydjango/settings.py | 124 ++++++++++++++++++ src/trydjango/urls.py | 26 ++++ src/trydjango/wsgi.py | 16 +++ 53 files changed, 380 insertions(+) create mode 100644 src/db.sqlite3 create mode 100755 src/manage.py create mode 100644 src/pages/__init__.py create mode 100644 src/pages/__pycache__/__init__.cpython-312.pyc create mode 100644 src/pages/__pycache__/admin.cpython-312.pyc create mode 100644 src/pages/__pycache__/apps.cpython-312.pyc create mode 100644 src/pages/__pycache__/models.cpython-312.pyc create mode 100644 src/pages/__pycache__/views.cpython-312.pyc create mode 100644 src/pages/admin.py create mode 100644 src/pages/apps.py create mode 100644 src/pages/migrations/__init__.py create mode 100644 src/pages/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 src/pages/models.py create mode 100644 src/pages/tests.py create mode 100644 src/pages/views.py create mode 100644 src/products/__init__.py create mode 100644 src/products/__pycache__/__init__.cpython-312.pyc create mode 100644 src/products/__pycache__/admin.cpython-312.pyc create mode 100644 src/products/__pycache__/apps.cpython-312.pyc create mode 100644 src/products/__pycache__/models.cpython-312.pyc create mode 100644 src/products/admin.py create mode 100644 src/products/apps.py create mode 100644 src/products/migrations/0001_initial.py create mode 100644 src/products/migrations/0002_alter_product_description_alter_product_price.py create mode 100644 src/products/migrations/0003_product_featured.py create mode 100644 src/products/migrations/0004_alter_product_summary.py create mode 100644 src/products/migrations/0005_alter_product_summary.py create mode 100644 src/products/migrations/__init__.py create mode 100644 src/products/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 src/products/migrations/__pycache__/0002_alter_product_description_alter_product_price.cpython-312.pyc create mode 100644 src/products/migrations/__pycache__/0003_product_featured.cpython-312.pyc create mode 100644 src/products/migrations/__pycache__/0004_alter_product_summary.cpython-312.pyc create mode 100644 src/products/migrations/__pycache__/0005_alter_product_summary.cpython-312.pyc create mode 100644 src/products/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 src/products/models.py create mode 100644 src/products/tests.py create mode 100644 src/products/views.py create mode 100644 src/profiles/__init__.py create mode 100644 src/profiles/admin.py create mode 100644 src/profiles/apps.py create mode 100644 src/profiles/migrations/__init__.py create mode 100644 src/profiles/models.py create mode 100644 src/profiles/tests.py create mode 100644 src/profiles/views.py create mode 100644 src/trydjango/__init__.py create mode 100644 src/trydjango/__pycache__/__init__.cpython-312.pyc create mode 100644 src/trydjango/__pycache__/settings.cpython-312.pyc create mode 100644 src/trydjango/__pycache__/urls.cpython-312.pyc create mode 100644 src/trydjango/__pycache__/wsgi.cpython-312.pyc create mode 100644 src/trydjango/asgi.py create mode 100644 src/trydjango/settings.py create mode 100644 src/trydjango/urls.py create mode 100644 src/trydjango/wsgi.py diff --git a/src/db.sqlite3 b/src/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..cda0f894cb0d2672fdaa2094fe6a05c28f3be622 GIT binary patch literal 139264 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 NM`lJw#v*1Q3jl7VAk+W= literal 0 HcmV?d00001 diff --git a/src/pages/__pycache__/admin.cpython-312.pyc b/src/pages/__pycache__/admin.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c664aad76b88db7685e8f8a1d95bf1287a0ca836 GIT binary patch literal 185 zcmX@j%ge<81lP{nWZDDi#~=<2FhLog1%Qm{3@HpLj5!Rsj8Tk?43$ip%r8OGnvAzt z6H{_C^ZYcKZtm}#sl@w(r6)^)9tYr8MQuj+!zdXMvySN}RIki~d1+2~` zH8)?sxF}h_ATb>%2sTEqpz;@oO>TZlX-=wL5eHBwBM=vZ7$2A!85!>}C={^)IRGdI BEujDa literal 0 HcmV?d00001 diff --git a/src/pages/__pycache__/apps.cpython-312.pyc b/src/pages/__pycache__/apps.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cbc22c93baf82c8d4146e9fbcb62e4f9d7480125 GIT binary patch literal 445 zcmXv~yH3L}6ur&^m9{~sAS4C`7DSe0WvGw}6>JrA7R$tL6v)HGjZoQ;IwQ7z1L9K{ zV55q}#KeYFSUO=l;STqnEo#@^5wnmIo5dfdWMdq$ofL3^)gB z%z&Bxo;QCO#Ij~cSvmS7GH0z@G&C<;t!1lH7at*UcD zA|~qQyFGeEvMBfHrI+TECBi$2qd_^z&tjI)%I2zeGU?$MjIv*`5hhlP64`H^c@o#qp&xlnS|?Ola*;f6%3R=+;`xY(3bDJ7Ij V-zGxn1NMK`47By={(=m;>kn$+Z>sgczY$Q2C3)2FNbWNwq8D0BU6f;$jfv12ZEd<2?qMA~qlg0Ch7gUjP6A literal 0 HcmV?d00001 diff --git a/src/pages/__pycache__/views.cpython-312.pyc b/src/pages/__pycache__/views.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e22bb58014373fe1f852adc8962c89dd6aef4f8 GIT binary patch literal 405 zcmXv~u};G<5Ve!EqJ%;RBsx~WlBI?{>eQiAkzhdTf}+?;N|QJ`r&MKP;2-)8RX>HL zh|OvzCN`vOoj6C~qiFd0?Ynt*F~3*m6&r;^VTF#vP4IZ$;Fer-zWo?P$ARoSHUrgHoN Dx^iE% literal 0 HcmV?d00001 diff --git a/src/pages/admin.py b/src/pages/admin.py new file mode 100644 index 00000000000..8c38f3f3dad --- /dev/null +++ b/src/pages/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/src/pages/apps.py b/src/pages/apps.py new file mode 100644 index 00000000000..4b6237c55b3 --- /dev/null +++ b/src/pages/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class PagesConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "pages" diff --git a/src/pages/migrations/__init__.py b/src/pages/migrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/pages/migrations/__pycache__/__init__.cpython-312.pyc b/src/pages/migrations/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..52d02c1a827c1c1e35f52c03830362542da28671 GIT binary patch literal 152 zcmX@j%ge<81lP{nWP<3&AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdWv*YIUzA;3keHlW ztnZSQn3taKlA4>ZUtE-|Uyzs%6wJ*`FG?)Q%+D* literal 0 HcmV?d00001 diff --git a/src/pages/models.py b/src/pages/models.py new file mode 100644 index 00000000000..71a83623907 --- /dev/null +++ b/src/pages/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/src/pages/tests.py b/src/pages/tests.py new file mode 100644 index 00000000000..7ce503c2dd9 --- /dev/null +++ b/src/pages/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/pages/views.py b/src/pages/views.py new file mode 100644 index 00000000000..747c8228955 --- /dev/null +++ b/src/pages/views.py @@ -0,0 +1,6 @@ +from django.http import HttpResponse +from django.shortcuts import render + +# Create your views here. +def home_view(*args, **kwargs): # *args, **kwargs + return HttpResponse("

Hello World

") # string of HTML code diff --git a/src/products/__init__.py b/src/products/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/products/__pycache__/__init__.cpython-312.pyc b/src/products/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e569928064deefe5514410207c2cf75003fea585 GIT binary patch literal 144 zcmX@j%ge<81as%vWP<3&AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdrLSL}UzA;3keHlW ztnZSQn3taKlA4>ZUtE-|Ur>~vQkq;+tREkrnU`4-AFo$X`HRCQ7bu#OYFESx)XxaS Q#URE*ZCdcIzAeqKpYW>OKzNw?T?^HWlDii=o59G2qDlGIxqMXBkT#U-glD;Yim zMHznS=$GdgWfvDDCZ`tbyMPUGNzKjIFD^>fFMya|tPi$Uub}c5hYirk(wtPgB3__o tkUNUyfy4)9Mn=ZF3<_V_7#L+9FtE0BHF8~N5WdJDJi+}cgG>>~ivVY_N!0)V literal 0 HcmV?d00001 diff --git a/src/products/__pycache__/apps.cpython-312.pyc b/src/products/__pycache__/apps.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..590ed20c54e2533cc9882201acb2c89afa739480 GIT binary patch literal 454 zcmXv~ze~eF6n>YaQu_-LEjT#12ti0zhayyqZpGCs$CHX{s9g`x9;Mf z;^J5WPEKw@b?M|?lD^@+@4NT&zV~Lc2HF;jPV}PVmmwRglwftN!5k=16hndngusF; zpw8Q>B6IutoAgR1A_oj2rP;Mn_7W0v0W!? zT}w{WaIA{{=^?!%qapX`t(S1hV&$Dj!)`j}ml2C;RuyG=->qa-j7KD47-uz%b#)pW z+`#xDC2^VArEEabc#Mgjfd}~z$K+mNWzJil_>WxPD?vi0{9eAi#}e)<8Ty-LJ`qBB zVj_)7xpOp7P3>l|JUIPu+ROU>Q%{@Vqb3b3&gZdxB8 z06)019Lhq>A2D$X5I~Rs8)^^&32Xx-od6_b*o-X`F6N;uv?h0BWo5>lGNfy^i!kxc z3l4x~^871{o&pRsh=3+Z0L#t9DkwC9BWcJAyBY#U8gBsXFY8b zu2o$>ZW~0bc>Doqa_i9WY8EDlDuERcOp|-K6NtzqgniSqT7l&{RIQ357jVn7Oibf` z+qMm_OVuZ?OR(XH)kGZ|LEFRV6PWW0pWm;%cD*CN#fz;}n}*YHtJroczGqfiq6L0M zy!}S2>+ydT8UFVEOJ+{MRL%Em6Ez>I`GGuE@AaNebEWrpCb?3WD-AB6RmZu9y`8CA zPzDcbwkD=?S;JO3IpKV=BvcaZAy?Y=28I6VkmBEh{qu>MJ z7c)E&M&Nptf^Pr<$eEzRDO`nDcnu* z>rRs&x-M}_q#NawU<=lDhwuh068>!=<0q0GB7$Q$Cc4_Ep)wrpingzss9JJ%NdzKW$3~6yhzQh~ zj!3|+SD4R(sIzO>Y5MAxWzN!*0f=_Ay6Mo?`d!E3j)6>QZ)PMCRNYvrO2Vp2dtEmX z#geLitZODCQ!8Lp4Ts*4ND$Rf6{4zcARDvUA(1sVr42SEn6-{buZ_|xnrxB9AfdHg z4Uga!+INO9Y}L?c!cM_8E9K22`AIxhwkkw{uT{K2P4+w3DXRKDj^qA_fXfWT TX-+&2cjftxJpUU|!#({M!m$+T literal 0 HcmV?d00001 diff --git a/src/products/migrations/__pycache__/0002_alter_product_description_alter_product_price.cpython-312.pyc b/src/products/migrations/__pycache__/0002_alter_product_description_alter_product_price.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1dcf1e2bf3ccc7e8d7e38640d46c77989f38f9c GIT binary patch literal 940 zcmaJ<&1(}u6rb6zWH(7kmx3NlD4|jI(v5l_U-$0kCuouuNcATO=+2=W=d4@<6fFD*-Ht83FAiZjVM` z%CsQD#816t4gmTb%)W8s6cFG*3>*o=4s>J*5T%<9yqW^|7+9QX-L=2{0$~L!L-m|5 zCuFEC#`;gKLRPDqXRK;m#QM;uzE8MaM(BOt^+jocFo{WsN$63M zCgSp#@yzd$ z==IOWxL6w%Ym+;hllA(o%{lJlT8jG|56b#l_7+` YH2|$^Z5?VS#<;pQs&4%P9Aw#l06@^~N&o-= literal 0 HcmV?d00001 diff --git a/src/products/migrations/__pycache__/0003_product_featured.cpython-312.pyc b/src/products/migrations/__pycache__/0003_product_featured.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cd3996cfe62cb42fd7b63f70b3410fc3b66351bb GIT binary patch literal 785 zcmZ8fziZn-6n-bkvLxc-nnGHfLMd@UOJtHY1X4l*{gJ7Y7NO{#ja;s}3jz2plX6v7 zU~wS86;Plgft2_p)qIVB1}8wZ3!plZo>?}nzhixgeSKuOl^-&3HSVNwmxY5k>lfTi zGm1$Ot$P5ft7LH|z!f0)go3Y8(j~sG0UA9;`0o}FG^ji?dw2fbml-v#D`O!|Ve`5= zHkMe-vqqL{bNgk-QEqtWPmJKZ3YyJh{d^N|KCZ@;s|+lRmiOl zhJztP`pPA|O0g3TlfkiT2>DWS&<|7OhKiL=j0xrSoMD0N4T?)t^{Jp{1*$R#xDy1T zbC{sO8$obB3=`QcGm1I(DfXin3no41)*+?Gaw?Nr`Nq>MOEB!KE$(DFt{&hMETk8= zC*IqPy)N=F!ooZ1h5c@JglXm#Eb>Y}y!E?z!kN84o|H;=@)47NfeI27haz0S+ywhM znd{m;^WBTN1NPPjXKFPkR&%!bXm+)Vt1_D>Lr>i!M(U(FH# literal 0 HcmV?d00001 diff --git a/src/products/migrations/__pycache__/0004_alter_product_summary.cpython-312.pyc b/src/products/migrations/__pycache__/0004_alter_product_summary.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c686b9d48160d3389d4d72f27b406cf713ee843b GIT binary patch literal 732 zcmY*W&ui2`6n>LrXOqxM8>*FJMV2DuvRTk$EeJ(HYVpuhE@QegU9!zDCs}lF6?*X4 zTmJ>61^*CF3&JjQ_2ezE6`?0*vWctj@bY~x@4b27d*4=9ZIJfn>uz|40DdUaSgQu} zJqa#>0!0zT$Vai}YX~%W2~;}=sxvgiP0{jur7y6rj}5o=QxR7ab{r0PP=slc3mm7E zMR|W&1JJI?{H+9+z`#coe2t<3@^uZEF{}puw*=%ERQeXEqFqNsJ0Hbyz{f`}60PGXNKRc{ zYEybh62wdxm2aJdETV_5B}`Jq2@y6SGH(-MN7jCG4b;Ldt6&H4zv3iwXV6ODt9(eClewt@NpXJ{EFh~aJK8sT?=Y6ly<}EMa zNtI7Ypq}`vwHDUR##|k>ath?nq&tTagVil{Z3CYjlr~roKiN}rdtz?SHXqH_w`NY~ z;_=k!Oq|Z=jqgtPrfpbusbdF!e8o4Leuu6hELx4%rN@=hO5Nhcdn&EUy)V(Nxw}}` k9^aBwT{3?lU8y64eq%uH4PHU`!k(_}OxAXOfh1M+9}a@I8UO$Q literal 0 HcmV?d00001 diff --git a/src/products/migrations/__pycache__/0005_alter_product_summary.cpython-312.pyc b/src/products/migrations/__pycache__/0005_alter_product_summary.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02632bcfd105b026e9e22b36abc2df9054dd3ae7 GIT binary patch literal 721 zcmZuv&ui2`6n>LrXOqxM8`NU4BFiG=(kxg{mV!_er1s<~2t(W%m#q2a%r15DqR@jU z>8*c*RPYb+w0PKMuAaOFwj%W8Og3Q^oWslaeR=QA`(E;Gecc6hK7HMf-ywh>nlz_X zgT;XY=Rkp?1X2{D)Cdg(20Q_3oB}l&8sesC^}H~bI5a1g-}R404V z^09QDHM6L}?1JZX+#dIeR;* zxODS^)f@Z_3+?XeC^*UaYf(gfCW6CZlnwGjmga%r{h+ZGtQH?AgAe|1aJQIn{Ryg| zfq1CGDU=wT`=x1I$M26y7o0mE-I={JwRh%QcjueibFXuDZ{~HTUgx{ly=+^KTbkIz zAD;4?O}As;k`Aqg+odlnpOv@eeK&MkmAj?TmA$`Q)&akzsQNQO+*YA95kkK)Apa7t SA$;b}HoDV|?k`ZJs{R96`LsI# literal 0 HcmV?d00001 diff --git a/src/products/migrations/__pycache__/__init__.cpython-312.pyc b/src/products/migrations/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c01ffb3e43b89dbd7e72fa760e0616c2ba42057e GIT binary patch literal 155 zcmX@j%ge<81as%vWP<3&AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdWu;%9UzA;3keHlW ztnZSQn3taKlA4>ZUtE-|Ur>~vQkq;+te=~iUX)mpnV(mzA0MBYmst`YuUAm{i^C=t bs30fRu80+A6eAE9gBTx~85tRin1L(+q8=tl literal 0 HcmV?d00001 diff --git a/src/products/models.py b/src/products/models.py new file mode 100644 index 00000000000..7ae337e0572 --- /dev/null +++ b/src/products/models.py @@ -0,0 +1,10 @@ +from django.db import models + +# Create your models here. +class Product(models.Model): + title = models.CharField(max_length=120) # max_length = required + description = models.TextField(blank=True, null=True) + price = models.DecimalField(decimal_places=2, max_digits=10000) + summary = models.TextField(blank=False, null=False) + featured = models.BooleanField() #null=True, default=True + \ No newline at end of file diff --git a/src/products/tests.py b/src/products/tests.py new file mode 100644 index 00000000000..7ce503c2dd9 --- /dev/null +++ b/src/products/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/products/views.py b/src/products/views.py new file mode 100644 index 00000000000..91ea44a218f --- /dev/null +++ b/src/products/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/src/profiles/__init__.py b/src/profiles/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/profiles/admin.py b/src/profiles/admin.py new file mode 100644 index 00000000000..8c38f3f3dad --- /dev/null +++ b/src/profiles/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/src/profiles/apps.py b/src/profiles/apps.py new file mode 100644 index 00000000000..d6cbb9bfca1 --- /dev/null +++ b/src/profiles/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ProfilesConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "profiles" diff --git a/src/profiles/migrations/__init__.py b/src/profiles/migrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/profiles/models.py b/src/profiles/models.py new file mode 100644 index 00000000000..71a83623907 --- /dev/null +++ b/src/profiles/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/src/profiles/tests.py b/src/profiles/tests.py new file mode 100644 index 00000000000..7ce503c2dd9 --- /dev/null +++ b/src/profiles/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/profiles/views.py b/src/profiles/views.py new file mode 100644 index 00000000000..91ea44a218f --- /dev/null +++ b/src/profiles/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/src/trydjango/__init__.py b/src/trydjango/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/trydjango/__pycache__/__init__.cpython-312.pyc b/src/trydjango/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2c1813c9a5dc0940e24f5e4c609d3593162abf9 GIT binary patch literal 145 zcmX@j%ge<81p8TaGePuY5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!GSDy2FUl@1NK8&G z)_2KD%uCOANzKjIFD^>fFDa@_0gLFz$7kkcmc+;F6;%G>u*uC&Da}c>D`Ev2zzD>} PAjU^#Mn=XWW*`dyo<||7 literal 0 HcmV?d00001 diff --git a/src/trydjango/__pycache__/settings.cpython-312.pyc b/src/trydjango/__pycache__/settings.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..74148246d481c63254e5b6c4c9051afed816efc7 GIT binary patch literal 2503 zcmb7Gy>Ht_6esolZCO!l$7u@%L7d91DJQ8DqX^Q_672|)B~_H-mO}|jca~}ML*Y?T z%%$49bZdu9*^2xrU2JrS!O1|U0v+T8T{88Nl5IgY(3FtKyZ7;X?|%2*k-x{|5ehEf z!9)4S7)AZ*Oir)BXz>1T82myZN}v#pJPNIP1P@JlDD1)BH}ueIH+<@L{(LhU?z%C~ z<<96bnGir;A&7iJs7(psHii7JX(0m706e28D8vwGkPkV!$ZJ}rQS_CsO$%`p6A~zn z5;%aStSCjH%tNzxDm!m^Qh zAt_x<{!c6eZ;u7~%h}Z|ZTqT{xnr%3SdcY>TU`S$q2^AuBzEVOqLo8gi3yNwuy_O1lv8`h?JN z!J29AcQCPLCzJ#e0yJM#sGyMA;4wexVZz3=ob4dCzvGzLA>bc%TPDc{t)-Eo70qkNb#e|{(%^U7Wf0$Z=@8k2V)|6xjuZ6*)5XEN@M znLe1vMFKX*^I%~PM9M9_LbR9&WJ-3TTdoZcPpYJ5z^BQB*H-X11V+ED7vvyDv;iMKtJJ^BqP?4L47pS#EqUf96TH7r3>?h8<^1rOFmp5T8`|I&UY6Wxfs~ z5I}+Oc4V_yD3rJ@w#M19TBTAK8?{otQeL;ib#Aj-V(T1lC%5>GqGMkw=2@qf>~Mjt zvrbsvo?{#JCt{W5`K?N=AUH=h52jsjH-A)y_b+%Eei-24a*Na@K@Ei5sc}sj)&Os&Zk&Xm?m@Bw_TEMEF zBStHCR^4as7N)cRA@mS zZ=*L3qc{GD-h3NfJd7^Bjovwo-sy)12`W*e`;kF_3dj5Y<7BEIe-{a-JpIJGnNY$5 znlzQn^kah%mFDQ9Wa=nAcO1*SqkK0L18*Q5ISEJofq^$3_w>VqhB0hI()f8r>` z93|&|eR!C>ed6~f!N%{}%v0g1gQPIKYcEyHuZ4lZ1*B`FBNmmqM1=}b3Y8E80wiv^x{2>DM;u4Ck8+3s zm^#v_{0pf3CoD*?5Qzyfu(hgKI$=9GbV5P`OG!R|{_?)}p6w6w^B&OS^~crZb`5}U zW-=M|DmZ?jgMAQ#4v3xDO&#WTT*t(AFSeBhSfzT0Vzo4!Y0>V)_3{#_LDte5mhf~bUNsK*6TVjK@i*5@b} zd`Ke|c;15nMO!10=0qtfGP#A)L@FfsNKuJ2jzo&1rwQGW0ou?Yj0=jAOyjW0 zTF|Qjx)H~SWGG=d7b--kCpbfF+$DKlB}IvaN;1Q>cGq!PS5YLnN?_Cv@&;tp8zS>H{LX24u z`q~8B&qy>*!zU!G+O{?2pV@AwypOeklTIy@ zu(&PX_kNf&={rT8#4O2l0FC4N+cfrCeFZ3>nV3c6{PTvb#rJ%#nCW));pujZg^I71 zsYJ3Z%pED_rbGy6Gdbx~S$Z$bT`ZtX6fL09S{(Ez^yVed=n literal 0 HcmV?d00001 diff --git a/src/trydjango/__pycache__/wsgi.cpython-312.pyc b/src/trydjango/__pycache__/wsgi.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8776a7d5009d9d0d93a995ac8276ba3b1c24ee3 GIT binary patch literal 637 zcmYjPF>ezw6t?furn=AwRkX8(SR%FOg2YlGB&38W2+|=%NLeoK`6YGm*(cjgNViT5 z`~ZFf>Yrd|DFO*`69_S|fwFbNNt(8A@cW*hzW064@~8Fn2>JN9vLoJMgnrG6Wt1+# z^w5L%h@&pzmf$JBIRbBTZNUE{_=U_WaDc8*n)FH4Q#Dkl#|4pNRlGZwz$2p5~qHHcsAIC zUaBaA8VRFS5qTnqK0B7KsNB%}fTlA~7u$5K&1;*p6fCXJ-?|Q&rq-nNN`1aXoKG&+ z9xdMXv8j5p|1rq!`r~hiG5!~nacR1NaP%A9|AB(H(P{JzZGJ|Z=UeglZv882{H)&n MQoVOtF}FPFKewN{JOBUy literal 0 HcmV?d00001 diff --git a/src/trydjango/asgi.py b/src/trydjango/asgi.py new file mode 100644 index 00000000000..cc0b9cb5ba4 --- /dev/null +++ b/src/trydjango/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for trydjango 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/5.2/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trydjango.settings") + +application = get_asgi_application() diff --git a/src/trydjango/settings.py b/src/trydjango/settings.py new file mode 100644 index 00000000000..6500324ae2f --- /dev/null +++ b/src/trydjango/settings.py @@ -0,0 +1,124 @@ +""" +Django settings for trydjango project. + +Generated by 'django-admin startproject' using Django 5.2.8. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.2/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/5.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = "django-insecure-db@lu*)2%ww&rwnma00b*m57gkze&%6w^f2ja8zbx_5nk@&8me" + +# 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", + 'pages', + 'products', +] + +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 = "trydjango.urls" + +TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ], + }, + }, +] + +WSGI_APPLICATION = "trydjango.wsgi.application" + + +# Database +# https://docs.djangoproject.com/en/5.2/ref/settings/#databases + +DATABASES = { + "default": { + "ENGINE": "django.db.backends.sqlite3", + "NAME": BASE_DIR / "db.sqlite3", + } +} + + +# Password validation +# https://docs.djangoproject.com/en/5.2/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/5.2/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/5.2/howto/static-files/ + +STATIC_URL = "static/" + +# Default primary key field type +# https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" diff --git a/src/trydjango/urls.py b/src/trydjango/urls.py new file mode 100644 index 00000000000..e65b6201781 --- /dev/null +++ b/src/trydjango/urls.py @@ -0,0 +1,26 @@ +""" +URL configuration for trydjango project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/5.2/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 pages.views import home_view + +urlpatterns = [ + path('', home_view, name='home'), + path("admin/", admin.site.urls), +] diff --git a/src/trydjango/wsgi.py b/src/trydjango/wsgi.py new file mode 100644 index 00000000000..0a3f69751b5 --- /dev/null +++ b/src/trydjango/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for trydjango 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/5.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trydjango.settings") + +application = get_wsgi_application()