Django создание сайта

Cоздать проект

django-admin startproject osmon

Cобрать проект

python manage.py makemigrations
python manage.py migrate

Запуск встроенного сервера

python manage.py runserver 8088

Кэш

Q: Как почистить кэш, если после манипуляций с базой данных (например) разрушилось приложение?
A: Надо удалить все файлы, кроме init.py в папке migrations соответствующего приложения.

Q: Плагин Emmet удобен для работы с шаблонизатором

Например, ![Tab] выводит сразу шаблон html документа

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

</body>
</html>

Статический контент

Q: ВАЖНО! Чтобы работали ссылки static и templates надо дописать в settings.py

SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
STATICFILES_DIRS = (
    os.path.join(SITE_ROOT, 'static/'),
)
#TEMPLATE_DIR = os.path.join(BASE_DIR, "templates")
# https://metanit.com/python/django/2.5.php
TEMPLATE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "templates")

Q: Чтобы autocomplete работал надо выбрать SDK для проекта!

Ctrl+Shift+Alt+S -> Python 3.7

Q: Как собрать статик файлы 

django-admin collectstatic

База данных

Q: Посмотреть SQL код созданной таблицы в приложении notes

python manage.py sqlmigrate notes 0001

Q: Как добавить новую таблицу в Django

  1. Прописать класс в application/model.py
class User(models.Model):
    user = models.CharField(max_length=12)
    password = models.CharField(max_length=40)

    def __srt__(self):
        return self.user
  1. Импортировать класс и добавить таблицу в application/admin.py
from django.contrib import admin
from .models import User

admin.site.register(User)
  1. Провести миграцию БД
./manage.py showmigrations
./manage.py migrate
  1. Добавить форму в application/forms.py

После этого можно добавлять таблицу в код проекта.