From 62e53fac1b0fe2205a11468478ba25c51b52e994 Mon Sep 17 00:00:00 2001 From: patiyutp Date: Mon, 2 Feb 2026 16:23:26 +0700 Subject: [PATCH] update --- app1/__init__.py | 0 app1/admin.py | 3 + app1/apps.py | 5 ++ app1/migrations/__init__.py | 0 app1/models.py | 3 + app1/tests.py | 3 + app1/views.py | 3 + db.sqlite3 | Bin 0 -> 131072 bytes lab/__init__.py | 0 lab/asgi.py | 16 +++++ lab/settings.py | 117 ++++++++++++++++++++++++++++++++++++ lab/urls.py | 22 +++++++ lab/wsgi.py | 16 +++++ manage.py | 22 +++++++ requirement.txt | Bin 0 -> 132 bytes 15 files changed, 210 insertions(+) create mode 100644 app1/__init__.py create mode 100644 app1/admin.py create mode 100644 app1/apps.py create mode 100644 app1/migrations/__init__.py create mode 100644 app1/models.py create mode 100644 app1/tests.py create mode 100644 app1/views.py create mode 100644 db.sqlite3 create mode 100644 lab/__init__.py create mode 100644 lab/asgi.py create mode 100644 lab/settings.py create mode 100644 lab/urls.py create mode 100644 lab/wsgi.py create mode 100644 manage.py create mode 100644 requirement.txt diff --git a/app1/__init__.py b/app1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app1/admin.py b/app1/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/app1/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/app1/apps.py b/app1/apps.py new file mode 100644 index 0000000..1824a7b --- /dev/null +++ b/app1/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class App1Config(AppConfig): + name = 'app1' diff --git a/app1/migrations/__init__.py b/app1/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app1/models.py b/app1/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/app1/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/app1/tests.py b/app1/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/app1/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/app1/views.py b/app1/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/app1/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..ad4a5575d4c97a8540732cebe61e28a7960e4f79 GIT binary patch literal 131072 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 MAOHd&@OTjTKfCOphX4Qo literal 0 HcmV?d00001 diff --git a/lab/__init__.py b/lab/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lab/asgi.py b/lab/asgi.py new file mode 100644 index 0000000..6123a9a --- /dev/null +++ b/lab/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for 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/6.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lab.settings') + +application = get_asgi_application() diff --git a/lab/settings.py b/lab/settings.py new file mode 100644 index 0000000..2aa1e87 --- /dev/null +++ b/lab/settings.py @@ -0,0 +1,117 @@ +""" +Django settings for lab project. + +Generated by 'django-admin startproject' using Django 6.0.1. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/6.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/6.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-@@2=om*32*4wr5eu)k^scu8g1s)b4x#jta*#qvm)w-un=0&8h1' + +# 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', +] + +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 = 'lab.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 = 'lab.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/6.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/6.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/6.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/6.0/howto/static-files/ + +STATIC_URL = 'static/' diff --git a/lab/urls.py b/lab/urls.py new file mode 100644 index 0000000..ec2f27b --- /dev/null +++ b/lab/urls.py @@ -0,0 +1,22 @@ +""" +URL configuration for lab project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/6.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 + +urlpatterns = [ + path('admin/', admin.site.urls), +] diff --git a/lab/wsgi.py b/lab/wsgi.py new file mode 100644 index 0000000..7ea2602 --- /dev/null +++ b/lab/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for 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/6.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lab.settings') + +application = get_wsgi_application() diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..9026ec2 --- /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', '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/requirement.txt b/requirement.txt new file mode 100644 index 0000000000000000000000000000000000000000..7784ae65879cffd918a78b24fdd39ee43739c983 GIT binary patch literal 132 zcmW-ZOA3H66a!~1c$HEux^w461V1R^udY12nm$4xFhjn#BQh~_F)-370Y{-YJUJOH p3mu!R-FR&zIf+J2Rt_1L_F#sWQCX95^U#amYWgqrTN)4c@B`E>6P*A6 literal 0 HcmV?d00001