1.16M
Category: programmingprogramming

Django для олимпиад 7-11 классы (Занятие 1)

1.

Django для олимпиад
7-11 классы
(Занятие 1)
Сергей Францевич Рудницкий
Аналитическая служба ПАО «КАМАЗ»
[email protected]
1

2.

Первоначальные установки
1. Командная строка (например, PowerShell)
6 главных команд командной строки:
cd (перейти в каталог)
cd .. (подняться на директорию выше)
dir (список файлов в текущем директории)
pwd (распечатать рабочий директорий)
md (создать директорий)
2. Python 3
python –version
https://www.python.org/downloads/ - отсюда Python
3. Виртуальное окружение
pip install virtualenv
4. Django
md django
cd django
virtualenv venv
venv\scripts\activate
pip install django
2

3.

Создание первого проекта
django-admin startproject test_project .
python manage.py runserver
http://127.0.0.1:8000/
exit
3

4.

Git
git config --global user.name “Ваше имя"
git config --global user.email "[email protected]"
Git для Windows https://gitforwindows.org/
4

5.

Приложение Hello World (Начало)
md helloworld
cd helloworld
virtualenv venv
venv\scripts\activate
pip install django
django-admin startproject helloworld_project .
python manage.py runserver
http://127.0.0.1:8000/
Control+c
python manage.py migrate
python manage.py runserver
5

6.

Второй проект: pages (1/4)
1 md pages
cd pages
virtualenv venv
venv\scripts\activate
pip install django
django-admin startproject pages_project .
python manage.py startapp pages
2 # pages_project/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'pages.apps.PagesConfig', # добавить
]
3
(pages) $ python manage.py runserver
4
http://127.0.0.1:8000/
13

7.

Второй проект: pages (2/4)
Шаблоны (templates)
4
<!-- templates/home.html -->
<h1>Homepage</h1>
5
Class-Based Views
# pages/views.py
from django.views.generic import TemplateView
1
Control+c
2
3
mkdir templates
class HomePageView(TemplateView):
template_name = 'home.html'
# pages_project/settings.py
TEMPLATES = [
{
...
'DIRS': [os.path.join(BASE_DIR, 'templates')], # добавить
...
},
]
14

8.

Второй проект: pages (3/4)
URL
6
# pages_project/urls.py
from django.contrib import admin
from django.urls import path, include # добавить
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('pages.urls')), # добавить
]
7 # pages/urls.py
from django.urls import path
from .views import HomePageView
urlpatterns = [
path('', HomePageView.as_view(), name='home'),
]
8
http://127.0.0.1:8000/
15

9.

Второй проект: pages (4/4)
Добавляем страницу About
9
Control+c
12
# pages/urls.py
from django.urls import path
from .views import HomePageView, AboutPageView # добавить
10
urlpatterns = [
<!-- templates/about.html -->
path('about/', AboutPageView.as_view(), name='about'), # добавить
<h1>About page</h1>
path('', HomePageView.as_view(), name='home'),
]
11
13
# pages/views.py
python manage.py runserver
from django.views.generic import TemplateView
14
class HomePageView(TemplateView):
http://127.0.0.1:8000/about
template_name = 'home.html‘
class AboutPageView(TemplateView): # добавить
template_name = 'about.html'
16

10.

Второй проект: pages (4/5)
Расширение шаблона
15
Control+c
16
<!-- templates/base.html -->
<header>
<a href="{% url 'home' %}">Home</a> | <a href="{% url 'about' %}">About</a>
</header>
{% block content %}
{% endblock content %}
18
17
{% block content %}
<h1>About page</h1>
{% endblock content %}
<!-- templates/home.html -->
{% extends 'base.html' %}
{% block content %}
<h1>Homepage</h1>
{% endblock content %}
<!-- templates/about.html -->
{% extends 'base.html' %}
19
http://127.0.0.1:8000/
http://127.0.0.1:8000/about
17
English     Русский Rules