Skip to content

Commit

Permalink
Set up a new Django project
Browse files Browse the repository at this point in the history
It adds a collection of settings for an instance of Django, including
database configuration, Django-specific options, and
application-specific settings.

Ref #16
  • Loading branch information
Martolivna committed Jul 29, 2023
1 parent 565b180 commit be708e4
Show file tree
Hide file tree
Showing 10 changed files with 202 additions and 3 deletions.
17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,20 @@ on:
pull_request:

jobs:
tests:
runs-on: ubuntu-latest

steps:
- name: Fetch the src
uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: 3.11

- name: Install requirements
run: python -m pip install -r test_requirements.txt

linters:
runs-on: ubuntu-latest

Expand All @@ -16,6 +30,9 @@ jobs:
with:
python-version: 3.11

- name: Install requirements
run: python -m pip install -r test_requirements.txt

- name: Install pre-commit
run: python -m pip install --upgrade pre-commit

Expand Down
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@
This is my educational project within IT KPI Python mentorship program by @webknjaz.

## Installation

Soon

```
git clone <url>
```
```
pip install requirements.txt
```


## Usage
Expand Down
1 change: 1 addition & 0 deletions dev_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pylint
23 changes: 23 additions & 0 deletions manage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/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', 'mysite.settings')
try:
# pylint: disable-next=import-outside-toplevel
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()
6 changes: 6 additions & 0 deletions mysite/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
"""
My educational Django project.
This is my blog using Django 3.2.18 created as part of the IT KPI Python
mentorship program by @webknjaz.
"""
9 changes: 9 additions & 0 deletions mysite/asgi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
"""ASGI config for mysite project."""

import os

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

application = get_asgi_application()
116 changes: 116 additions & 0 deletions mysite/settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
"""
Django settings for mysite project.
Configuration file for Django project "mysite" using Django 3.2.18.
Includes various settings such as the secret key, debug mode, allowed
hosts, installed apps, middleware, database configuration, password
validators, internationalization settings, static file settings, and
the default primary key field type.
"""
import os
from pathlib import Path

from dotenv import load_dotenv

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

load_dotenv(os.path.join(BASE_DIR, '.env'))


# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'notsecuretempkey'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ['127.0.0.1']


# 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 = 'mysite.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 = 'mysite.wsgi.application'


DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
},
}


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',
},
]


LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'Europe/Kyiv'

USE_I18N = True

USE_L10N = True

USE_TZ = True


STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'static'


DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
8 changes: 8 additions & 0 deletions mysite/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"""mysite URL Configuration."""

from django.contrib import admin
from django.urls import path

urlpatterns = [
path('admin/', admin.site.urls),
]
9 changes: 9 additions & 0 deletions mysite/wsgi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
"""WSGI config for mysite project."""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

application = get_wsgi_application()
7 changes: 7 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
asgiref == 3.7.2
# via django
django == 3.2.20
pytz == 2023.3
# via django
sqlparse == 0.4.4
# via django

0 comments on commit be708e4

Please sign in to comment.