🔖 Справочник: команды Django
⚡ Главные команды
# Установка
pip install django
# Создать проект (точка = в текущей папке)
django-admin startproject config .
# Создать приложение
python manage.py startapp myapp
# Запустить сервер разработки
python manage.py runserver
# Миграции
python manage.py makemigrations
python manage.py migrate
# Суперпользователь
python manage.py createsuperuser
# Оболочка Django
python manage.py shell
Установка Django
# Создать виртуальное окружение
python -m venv venv
# Активировать (Windows)
venv\Scripts\activate
# Активировать (macOS/Linux)
source venv/bin/activate
# Установить Django
pip install django
# Проверить версию
python -m django --version
django-admin — создание проекта
# Создать проект В ТЕКУЩЕЙ папке (рекомендуется)
django-admin startproject config .
# Создать проект (создаёт дополнительную директорию config/)
django-admin startproject config
# Список доступных команд
django-admin help
Точка в конце команды означает «создать структуру прямо в текущей директории», без добавления лишней вложенности. Рекомендуется использовать именно так.
manage.py — управление проектом
Запуск сервера разработки
# Запуск на стандартном порту 8000
python manage.py runserver
# Запуск на другом порту
python manage.py runserver 8080
# Запуск на конкретном адресе и порту
python manage.py runserver 0.0.0.0:8000
Работа с приложениями
# Создать новое приложение
python manage.py startapp myapp
# После создания зарегистрировать в settings.py:
INSTALLED_APPS = [
# ... встроенные приложения ...
'myapp',
]
Миграции базы данных
# Создать файлы миграций (по изменениям в models.py)
python manage.py makemigrations
# Создать миграцию для конкретного приложения
python manage.py makemigrations myapp
# Применить все миграции к базе данных
python manage.py migrate
# Применить миграции конкретного приложения
python manage.py migrate myapp
# Посмотреть статус миграций
python manage.py showmigrations
# Откатить миграции приложения
python manage.py migrate myapp zero
Управление пользователями
# Создать суперпользователя (интерактивно)
python manage.py createsuperuser
# Изменить пароль пользователя
python manage.py changepassword username
Интерактивная оболочка
# Запустить Django shell (Python REPL с загруженным проектом)
python manage.py shell
# Пример использования в shell:
# >>> from myapp.models import MyModel
# >>> MyModel.objects.all()
Сборка статических файлов
# Собрать все статические файлы в STATIC_ROOT
python manage.py collectstatic
Диагностика
# Проверить корректность конфигурации проекта
python manage.py check
# Посмотреть список всех доступных команд
python manage.py help
Структура urls.py — маршрутизация
# config/urls.py — корневые маршруты
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
path('api/', include('myapp.urls')), # с префиксом
]
# myapp/urls.py — маршруты приложения
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('hello/', views.hello, name='hello'),
path('items/<int:item_id>/', views.item_detail, name='item-detail'),
]
Функция
path() принимает: строку маршрута, view-функцию (или класс), необязательное имя маршрута (name=).
Простые views (функциональные)
# myapp/views.py
from django.http import HttpResponse
from django.shortcuts import render
def index(request):
return HttpResponse("Hello, World!")
def hello(request):
name = request.GET.get('name', 'World')
return HttpResponse(f"Hello, {name}!")
def about(request):
context = {'title': 'О нас'}
return render(request, 'myapp/about.html', context)
Шаблоны Django (DTL)
# myapp/templates/myapp/index.html
<!DOCTYPE html>
<html>
<head><title>{{ title }}</title></head>
<body>
<h1>{{ title }}</h1>
{% for item in items %}
<p>{{ item }}</p>
{% endfor %}
</body>
</html>
Шаблоны Django ищутся автоматически в папке
templates/ каждого приложения, если в settings.py установлено 'APP_DIRS': True.