diff --git a/CarsRental/CarsRental/__init__.py b/CarsRental/CarsRental/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/CarsRental/CarsRental/asgi.py b/CarsRental/CarsRental/asgi.py new file mode 100644 index 0000000..5ecdcc4 --- /dev/null +++ b/CarsRental/CarsRental/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for CarsRental 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', 'CarsRental.settings') + +application = get_asgi_application() diff --git a/CarsRental/CarsRental/settings.py b/CarsRental/CarsRental/settings.py new file mode 100644 index 0000000..6f804ef --- /dev/null +++ b/CarsRental/CarsRental/settings.py @@ -0,0 +1,118 @@ +""" +Django settings for CarsRental project. + +Generated by 'django-admin startproject' using Django 6.0.3. + +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-v!%e(@#@ou=s3c47c5unmuag5db)=(ls4)!)d^w+%0$p0i=bq7' + +# 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', + 'main', +] + +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 = 'CarsRental.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 = 'CarsRental.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/CarsRental/CarsRental/urls.py b/CarsRental/CarsRental/urls.py new file mode 100644 index 0000000..bca7d2a --- /dev/null +++ b/CarsRental/CarsRental/urls.py @@ -0,0 +1,23 @@ +""" +URL configuration for CarsRental 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 , include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('', include("main.urls")), +] diff --git a/CarsRental/CarsRental/wsgi.py b/CarsRental/CarsRental/wsgi.py new file mode 100644 index 0000000..fa42221 --- /dev/null +++ b/CarsRental/CarsRental/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for CarsRental 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', 'CarsRental.settings') + +application = get_wsgi_application() diff --git a/CarsRental/main/__init__.py b/CarsRental/main/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/CarsRental/main/admin.py b/CarsRental/main/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/CarsRental/main/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/CarsRental/main/apps.py b/CarsRental/main/apps.py new file mode 100644 index 0000000..833bff6 --- /dev/null +++ b/CarsRental/main/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class MainConfig(AppConfig): + name = 'main' diff --git a/CarsRental/main/migrations/__init__.py b/CarsRental/main/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/CarsRental/main/models.py b/CarsRental/main/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/CarsRental/main/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/CarsRental/main/templates/main/about.html b/CarsRental/main/templates/main/about.html new file mode 100644 index 0000000..669f4d9 --- /dev/null +++ b/CarsRental/main/templates/main/about.html @@ -0,0 +1,14 @@ + + + + + + About + + +

Car rentals

+

+ Car rentals provide a convenient way for people to travel without owning a vehicle. Customers can choose from a variety of cars depending on their needs, whether for daily use, business trips, or vacations. Rental services usually offer flexible options, including hourly, daily, or weekly rates. This allows travelers to move freely and comfortably while saving time and effort compared to public transportation. +

+ + \ No newline at end of file diff --git a/CarsRental/main/templates/main/home.html b/CarsRental/main/templates/main/home.html new file mode 100644 index 0000000..d89ede7 --- /dev/null +++ b/CarsRental/main/templates/main/home.html @@ -0,0 +1,14 @@ + + + + + + Home + + +

Hello World



+

This is my new HOME for Car Rentals Website ! we're excited to welcome you here. + +

+ + \ No newline at end of file diff --git a/CarsRental/main/tests.py b/CarsRental/main/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/CarsRental/main/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/CarsRental/main/urls.py b/CarsRental/main/urls.py new file mode 100644 index 0000000..fcbbfff --- /dev/null +++ b/CarsRental/main/urls.py @@ -0,0 +1,11 @@ +from django.urls import path +from . import views + +app_name="main" + +urlpatterns=[ + path("", views.home_view, name="home_view"), + path("about/", views.about_view, name="about_view"), + path("password/generate/" , views.password_view, name="password_view") + +] \ No newline at end of file diff --git a/CarsRental/main/views.py b/CarsRental/main/views.py new file mode 100644 index 0000000..8c34682 --- /dev/null +++ b/CarsRental/main/views.py @@ -0,0 +1,20 @@ +import secrets +import string +from django.shortcuts import render +from django.http import HttpRequest,HttpResponse + +# Create your views here. + +def home_view(request:HttpRequest): + + return render(request, "main/home.html" ) + +def about_view(request:HttpRequest): + return render(request,"main/about.html") + +def password_view(request:HttpRequest): + length = 10 + characters = string.ascii_letters + string.digits + string.punctuation + + random_text = ''.join(secrets.choice(characters) for _ in range(length)) + return HttpResponse("The password: " + random_text) \ No newline at end of file diff --git a/CarsRental/manage.py b/CarsRental/manage.py new file mode 100644 index 0000000..762ee9f --- /dev/null +++ b/CarsRental/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', 'CarsRental.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()