Skip to content

Latest commit

 

History

History
106 lines (91 loc) · 2.89 KB

start_project.md

File metadata and controls

106 lines (91 loc) · 2.89 KB

Старт проекта на Django

Создать виртуальное окружение

$ python3 -m venv venv

Запустить виртуальное окружение

$ source venv/bin/activate

Стартуем проект

$ pip install django djangorestframework psycopg2-binary djangorestframework-simplejwt django-cors-headers
$ pip freeze > requirements.txt
$ django-admin.py startproject <name>
$ python manage.py startapp api

Добавить файл .gitignore

Скрываем переменные для .env

import os

from django.core.management.utils import get_random_secret_key

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.environ.get("SECRET_KEY") or get_random_secret_key()

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = int(os.environ.get('DEBUG'))

Изменить INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'corsheaders',
    'rest_framework',
    'api',
]

Изменить конфигурацию БД

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': os.environ.get("SQL_DATABASE"),
        'USER': os.environ.get("SQL_USER"),
        'PASSWORD': os.environ.get("SQL_PASSWORD"),
        'HOST': os.environ.get("SQL_HOST"),
        'PORT': os.environ.get("SQL_PORT"),
    }
}

(Дополнительно) Можно включить постоянные соединения

Добавляем Middleware для CORS

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    ...
]

Разрешаем подключение

CORS_ORIGIN_ALLOW_ALL = True # If this is used then `CORS_ORIGIN_WHITELIST` will not have any effect
CORS_ALLOW_CREDENTIALS = True

Добавляем ссылочку на статику

STATIC_ROOT = Path(BASE_DIR, 'static')

Настраиваем среду для Django

Настраиваем Docker или [Настраиваем димончиков]

Настраиваем БД

Добавляем .env файлик или описываем в environment в docker-compose

SECRET_KEY=<secret_key>
DEBUG=0
DJANGO_ALLOWED_HOSTS=*
SQL_DATABASE=<db_name>
SQL_USER=<db_user>
SQL_PASSWORD=<db_password>
SQL_HOST=<db_host>
SQL_PORT=5432

12 Накатываем миграции

$ python manage.py migrate

Что дальше?