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 Aug 1, 2023
1 parent 565b180 commit a866d8b
Show file tree
Hide file tree
Showing 12 changed files with 261 additions and 2 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@ 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 requirements/dev.txt

- name: Run tests
run: python -m manage.py test

linters:
runs-on: ubuntu-latest

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

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

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

Expand Down
19 changes: 17 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,28 @@ This is my educational project within IT KPI Python mentorship program by @webkn

## Installation

Soon
1. Clone this repository:
```console
git clone https://github.com/kpi-web-guild/django-girls-blog-Martolivna.git
```
or:
```console
git clone [email protected]:kpi-web-guild/django-girls-blog-Martolivna.git
```

2. Install requirements:
```console
pip install -r requirements/base.txt
```


## Usage

Soon
1. Start the server:
```console
python manage.py runserver
```


## Contributing

Expand Down
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()
7 changes: 7 additions & 0 deletions mysite/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
"""
A Django blog project.
This module contains the main configuration settings for the Django
project, including database settings, middleware, installed apps,
URL configurations, static files, and other key configuration options.
"""
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()
111 changes: 111 additions & 0 deletions mysite/settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
"""
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.
"""
from pathlib import Path

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


# 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()
1 change: 1 addition & 0 deletions requirements/base.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Django ~= 3.0
14 changes: 14 additions & 0 deletions requirements/base.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile --constraint=dev.txt base.in
#
asgiref == 3.7.2
# via django
django == 3.2.20
# via -r base.in
pytz == 2023.3
# via django
sqlparse == 0.4.4
# via django
2 changes: 2 additions & 0 deletions requirements/dev.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-r base.txt
pylint
40 changes: 40 additions & 0 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile --constraint=base.in dev.in
#
asgiref == 3.7.2
# via
# -r base.txt
# django
astroid == 2.15.6
# via pylint
dill == 0.3.7
# via pylint
django == 3.2.20
# via
# -c base.in
# -r base.txt
isort == 5.12.0
# via pylint
lazy-object-proxy == 1.9.0
# via astroid
mccabe == 0.7.0
# via pylint
platformdirs == 3.10.0
# via pylint
pylint == 2.17.5
# via -r dev.in
pytz == 2023.3
# via
# -r base.txt
# django
sqlparse == 0.4.4
# via
# -r base.txt
# django
tomlkit == 0.12.1
# via pylint
wrapt == 1.15.0
# via astroid

0 comments on commit a866d8b

Please sign in to comment.