Django
superkotopess#tutorial-extensions.djangogirls.org/
#Getting Started With Django video lessons
# установка Django
sudo apt install python3-django # ставим стабильную версию
django-admin --version # проверить установленную версию фреймворка
# PyCharm
# создаём новый проект
# используем стандартный инструментарий PyCharm
pip fteeze # посмотреть какие пакеты уже установленны в этом venv
# устанавливаем Django в текущее venv
# открываем Terminal PyCharm и ставим Django в текущий проект
pip install django # устанавливаем django, использую пакетный менеджер для Python
pip install --upgrade pip # можем попутненько обновить pip
django-admin --version # проверяем версию django
pip --version # проверяем версию pip
pip freeze # посмотреть какие пакеты теперь установленны в venv
# создаем проект
django-admin startproject pykot
# возможно потребуется установить это
sudo apt-get install python3-setuptools
# обзор каталога
pykot # внешний каталог, контейнер проекта, его название не используется Django и вы можете назвать его переименовать
pykot # внутренний файл - это непосредственно файл проекта, файлы созданные внутри него содержат базовые настройки сайта на Django. Его название – это название пакета Python, которое мы будете использовать для импорта чего-либо из проекта (например - import pykot.settings)
pykot/__init__.py # пустой файл, указывает Python, что текущий каталог является пакетом Python
pykot/settings.py # настройки проекта
pykot/urls.py # конфигурация URL-ов для нашего проекта Django. Это “содержимое” всех Django-сайтов
pykot/wsgi.py # точки входа для WSGI-совместимых веб-серверов
# server
python3 manage.py runserver # можно проверять сервер работает
# Django. Forms
# https://docs.djangoproject.com/en/2.0/topics/forms/
# you can create a new form
from django import forms
# QuerySet
# QuerySet allows you to read data from the database, filter and change their order
# https://docs.djangoproject.com/en/1.11/ref/models/querysets/
from blog.models import Post
Post.objects.all() - display all blog entries
from django.contrib.auth.models import User
User.objects.all() - display all users entries
Ivan = User.objects.get(username='admin') - create an instance
Post.objects.create(author=Ivan, title='Sample title', text='Test') - create post
Post.objects.filter(author=Ivan) - filtering posts by author
Post.objects.filter(title__contains='title') - filtering posts by "title" in name post
from django.utils import timezone
Post.objects.filter(published_date__lte=timezone.now()) - filtering posts by time of publication
post = Post.objects.get(title="Sample title")
post.publish() - publication of post
Post.objects.order_by('created_date') - sort by field "created_date"
Post.objects.order_by('-created_date') - reverse order
Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') - coupler
python manage.py runserver - run local server
python manage.py shell - interactive console