⚡ Шпаргалка — все команды практикума
pip install django django-environ mysqlclient
django-admin startproject config .
python manage.py runserver
python manage.py startapp first_app
# settings.py
from environ import Env
env = Env()
Env.read_env(BASE_DIR / '.env')
SECRET_KEY = env('SECRET_KEY')
DEBUG = env.bool('DEBUG', default=False)
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=[])
Консольные команды
Установка пакетов
| Команда | Назначение |
pip install django | Установить Django (последняя стабильная версия) |
pip install django-environ | Библиотека для чтения .env файлов |
pip install mysqlclient | Драйвер MySQL для Django |
django-admin и manage.py
| Команда | Назначение |
django-admin startproject config . | Создать структуру проекта в текущей папке |
python manage.py startapp first_app | Создать новое приложение |
python manage.py runserver | Запустить dev-сервер на порту 8000 |
python manage.py runserver 8080 | Запустить на другом порту |
python manage.py migrate | Применить миграции БД |
python manage.py shell | Интерактивная оболочка Django |
django-environ — методы чтения
| Метод | Тип результата | Пример .env |
env('KEY') | str | SECRET_KEY=abc123 |
env.bool('KEY', default=False) | bool | DEBUG=True |
env.list('KEY', default=[]) | list | ALLOWED_HOSTS=127.0.0.1,localhost |
env('KEY', default='val') | str | вернёт 'val' если KEY не задан |
env.db('DATABASE_URL') | dict | DATABASE_URL=sqlite:///db.sqlite3 |
Подключение .env в settings.py
from pathlib import Path
from environ import Env
BASE_DIR = Path(__file__).resolve().parent.parent
env = Env()
Env.read_env(BASE_DIR / '.env') # читаем .env из корня проекта
SECRET_KEY = env('SECRET_KEY')
DEBUG = env.bool('DEBUG', default=False)
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=[])
Регистрация приложения
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... стандартные приложения Django ...
'first_app.apps.FirstAppConfig', # наше приложение
]
Структура urls.py
# first_app/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('first/', views.first_view, name='first_view'),
]
# config/urls.py (корневой)
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('first_app.urls')),
]
Пример простого view
# first_app/views.py
from django.http import HttpResponse
def first_view(request):
return HttpResponse("<h1>Hello! It's my first view!</h1>")