ݺߣ

ݺߣShare a Scribd company logo
Django.
Дополнительные
темы

Александр Бекбулатов
План лекции
1. Скрипт управления django приложением.

2. Middleware.
3. Использование сессий.
4. Приложение auth.
5. Class Based Views.
6. Расширение фильтров и тэгов в
шаблонизаторе.
7. Другие приложения из коробки.
8. Оптимизация производительности
2
Скрипт управления django
приложением

3
Управление django приложением
Зачем?
• Standalone скрипты
• Скрипты запуска по крону
Как?
• Ручная инициализация приложения
• Management команды

4
Ручная инициализация
import os
import sys
if __name__ == "__main__":
lib_path = 'path/to/project'
if not lib_path in sys.path:
sys.path.append(lib_path)
os.environ['DJANGO_SETTINGS_MODULE'] = 
'ask_pupkin.settings'
# from django.conf import settings
from ask.models import User
…
5
Management команды
Куда поместить?
ask/
__init__.py
models.py
management/
__init__.py
commands/
__init__.py
fill_db.py
tests.py
views.py

6
Management команды
class Command(BaseCommand):
help = 'Fill database with test data'
def handle(self, *args, **options):
verbosity =
int(options.get('verbosity', 1))
for i in xrange(USER_COUNT):
user = User(
name=get_random_string(10),
email=get_random_email()
)
user.save()
if verbosity > 1:
self.stdout.write('Successfully
imported %d users' % USER_COUNT)
7
Управление django приложением
Возможности
• Запуск скриптов для конкретного приложения
(manage.py sqlall ask)
• Несколько команд в одном файле (manage.py
fill_db users, manage.py fill_db questions)
• Дополнительные опции (--delete)

https://docs.djangoproject.com/en/dev/howto/custommanagement-commands/
8
Middleware

9
Middleware

10
Middleware
Примеры
• Обработка запроса
• Статистика
• Аутентификация
• Защита от CSRF
• Редиректы
• Кеширование

11
CSRF Атака

12
CSRF в Django
• «Небезопасные» методы POST, PUT и DELETE
• Установка cookie (csrftoken)
• Установка hidden поля (csrfmiddlewaretoken)
или заголовка (X-CSRFToken)

13
CSRF в Django
1. Для установки куки страница должна отдаваться
динамически
2. Кука может не ставиться, если передача контекста
идет через Context вместо RequestContext
3. Скрытое поле ставится тегом {% csrf_token
%}, используйте RequestContext (функция render)
4. Токен в ajax запросах удобнее передавать заголовком

https://docs.djangoproject.com/en/dev/ref/contrib/csrf/
14
Использование сессий
Способы хранения
• Файловые сессии
• Сессии в БД
• Сессии в куках

15
Использование сессий
def login(request):
username = request.POST.get('username')
try:
user = User.objects.get(username=username)
except User.DoesNotExist:
return HttpResponse("Such user is not
created.")
# bad practice!!!
if user.password ==
request.POST.get('password'):
request.session['user_id'] = user.id
return HttpResponse("You're logged in.")
else:
return HttpResponse("Your username and
password didn't match.")
16
Использование сессий
def logout(request):
try:
del request.session['user_id']
except KeyError:
pass
return HttpResponse("You're logged out.")

17
Декораторы в python
def makebold(fn):
def wrapped():
return "<b>" + fn() + "</b>"
return wrapped
def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped

18
Декораторы в python
@makebold
@makeitalic
def hello():
return "hello world"
// hello = makebold(makeitalic(hello))

print hello() ## returns <b><i>hello world</i></b>

19
Декораторы для Views
@require_POST
def vote_view(request):
# only POST method is allowed
pass
либо
url(r"^vote/", require_POST(vote)),

20
Django Views
Примеры

 Проверка HTTP методов
 Проверка прав доступа
 Кеширование

21
Django Auth

22
Django Auth
Возможности

 Пользователи
 Права и группы доступа
 Контроллеры login/logout

 Тесная интеграция с админкой

23
Django Auth
Модель User
 username (обязательное поле)

 first_name
 last_name
 email

 password (обязательное поле)
 is_staff
 is_active

 is_superuser
 …
24
Django Auth
Создание пользователей
from django.contrib.auth.models import User
user =
User.objects.create_user('masha', 'masha@mail.ru',
'password')

25
Django Auth
Login
def login_view(request):
username = request.POST.get('username')
password = request.POST.get('password')
user =
authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
# Redirect to a success page.
else:
# 'disabled account' error message
else:
# 'invalid login' error message.
26
Django Auth
Logout
def logout_view(request):
logout(request)
# Redirect to a success page.

27
Django Auth
Login/Logout средствами django
1. Подключить в роутинге контроллеры входа и выхода
(r'^accounts/login/$', 'django.contrib.auth.views.logi

n')
(r'^accounts/logout/$', 'django.contrib.auth.views.log
out')

2. Создать шаблоны
registration/login.html
registration/logged_out.html

3. GET параметр next для возврата
28
Django Auth
Login/Logout средствами django
Страница авторизации:
LOGIN_URL = '/accounts/login/'

Страница профиля:
LOGIN_REDIRECT_URL = '/accounts/profile/'

Страница выхода:
LOGOUT_URL = '/accounts/logout/’

https://docs.djangoproject.com/en/dev/topics/auth/default/
29
Django Auth
Проверка авторизации во views
def my_view(request):
if not request.user.is_authenticated():
return redirect('/login/?next=%s' %
request.path)
user = request.user

@login_required
def my_view(request):
...

30
Django Auth
Проверка авторизации в шаблонах
{% if user.is_authenticated %}
Welcome, {{ user.username }}
{% else %}
Please log in.
{% endif %}

31
Django Auth
Расширение текущего пользователя
from django.contrib.auth.models import User

class UserProfile(models.Model):
user =
models.OneToOneField(User, related_name='profile')
rating = models.PositiveIntegerField()

>>> u = User.objects.get(username='masha')
>>> print u.profile.rating

32
Django Auth
Расширение текущего пользователя
• Другой уникальный ключ пользователя (email вместо

username)
• Дополнительные поля (в т. ч. обязательные)

https://docs.djangoproject.com/en/dev/topics/auth/customizing
/#extending-the-existing-user-model

33
Class Based Views

34
Class Based Views
•
•
•

•
•
•
•
•
•
•

•
35
Class Based Views
Контроллер-функция (пример 1)
def post_detail(request, pk):
try:
object = Post.objects.get(pk=pk)
except Post.DoesNotExist:
raise Http404
return render(
request, 'blog/post_detail.html',
{'object': object}
)
urlpatterns = patterns('',

url(/slideshow/web-2013-8-31460523/31460523/r&)/$', post_detail, name='post
_detail'),
36
)
Class Based Views
Контроллер-класс (пример 1)
class PostDetail(generic.DetailView):
model=Post

urlpatterns = patterns('',
url(/slideshow/web-2013-8-31460523/31460523/r&)/$', PostDetail.as_view(), n
ame='post_detail'),
)

37
Class Based Views
Контроллер-функция (пример 2)
def post_list(request):
paginator = Paginator(Post.objects.all(), 25)

page = request.GET.get('page')
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
return render(
request, 'blog/post_list.html',
{'object_list': posts}
)
38
Class Based Views
Контроллер-класс (пример 2)
class PostList(generic.ListView):
model = Post
paginate_by = 25

39
Class Based Views
Контроллер-функция (пример 3)
@login_required
def category(request, pk):
cat = get_object_or_404(Category, pk=pk)
post_list = Post.objects.filter(category=cat)
return render(request, 'blog/category.html', {
'category': cat,
'post_list' : post_list
})

40
Class Based Views
Контроллер-класс (пример 3)
class CategoryListView(generic.ListView):
template_name = 'blog/category.html’
def get_queryset(self):
self.cat =
get_object_or_404(Category, pk=self.kwargs['pk'])
return Post.objects.filter(category=self.cat)
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return
super(CategoryListView, self).dispatch(*args, **kwargs)
def get_context_data(self, **kwargs):
context =
super(CategoryListView, self).get_context_data(**kwargs)
context['category'] = self.cat
return context

41
Class Based Views

42
Фильтры и теги в
шаблонизаторе

43
Построение урлов
Модель
class Post(models.Model):
…
@models.permalink
def get_absolute_url(self):
return ('post_detail', (self.pk,))
# либо
def get_absolute_url(self):
return
reverse('post_detail', args=(self.pk,))

44
Построение урлов
Роутинг
url(r'^(?P<pk>d+)/$', 'post_detail', name='post_de
tail'),

Шаблоны
<a href="{{ post.get_absolute_url }}">{{ post
}}</a>
<a href="{% url 'post_detail' post.pk %}">{{ post
}}</a>

45
Фильтры и теги в шаблонизаторе
 Фильтр
{{ post.content|cut:"<cut>" }}
 Simple Tag
{% current_time "%Y-%m-%d %I:%M %p" %}
 Inclusion tag
{% popular_tags 20 %}

46
Фильтры и теги в шаблонизаторе
 Assignment tags
{% get_current_time "%Y-%m-%d %I:%M %p" as
the_time %}
 Блок с закрывающим тегом

{% switch %} {% endswitch %}

47
Фильтры и теги в шаблонизаторе
Добавление тега
blog/
__init__.py
models.py
templatetags/
__init__.py
blog_tags.py
tests.py
views.py

48
Фильтры и теги в шаблонизаторе
from django import template
from blog.models import Post
register = template.Library()
@register.inclusion_tag('blog/tags/lastposts.html')
def last_posts():
return {'post_list': Post.objects.all()[:5]}

49
Фильтры и теги в шаблонизаторе
Шаблон
<ul>
{% for object in post_list %}
<li><a href="{{ object.get_absolute_url}}">{{
object }}</a></li>
{% endfor %}
</ul>

Подключение
{% load blog_tags %}
{% last_posts %}

https://docs.djangoproject.com/en/dev/howto/custom-templatetags/
50
Приложения из коробки

51
Административная консоль
Подключение
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
…
# Uncomment the next line to enable the admin:
url(/slideshow/web-2013-8-31460523/31460523/r&)),
)

52
Административная консоль
Подключение
from blog.models import Category, Post
from django.contrib import admin
class PostAdmin(admin.ModelAdmin):
date_hierarchy = 'creation_date'
list_display = ('title', 'category')
list_filter = ('category',)
search_fields = ('title',)
admin.site.register(Category)
admin.site.register(Post, PostAdmin)

53
Административная консоль

54
Административная консоль

55
Административная консоль

56
Static Files
Возможности
 Сбор статики

 Отдача статики (???)
 Шаблонные теги

Сбор статики
STATIC_ROOT = "/var/www/blog.me/static/"

python manage.py collectstatic
57
ContentTypes framework
Article
id
title
…

Photo
id
title
…
TaggedItem
id
content_type_id
object_id
tag_id

Tag
id
title
…
58
Оптимизация

производительности

59
Кеширование
Схема кеширования








60
Кеширование
Условия кеширования

61
Кеширование
Поддержка

62
Кеширование
Уровни кеширования

63
•
•
•

64
•
•
•

•

•

65
Полезные советы
 Избегайте дублирования кода DRY
 Делайте короче и проще KISS

66
1. Авторизация и регистрация пользователей на сайте
2. Блок с последними зарегистрированными
пользователями
http://tp.mail.ru/blog/Web/935.html

67
Спасибо за внимание
Александр
Бекбулатов, a.bekbulatov@c
orp.mail.ru

More Related Content

What's hot (20)

Максим Щепелин. "Unittesting. Как?"
Максим Щепелин. "Unittesting. Как?"Максим Щепелин. "Unittesting. Как?"
Максим Щепелин. "Unittesting. Как?"
Python Meetup
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
Krivoy Rog IT Community
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
Яковенко Кирилл
Профилирование и отладка Django
Профилирование и отладка DjangoПрофилирование и отладка Django
Профилирование и отладка Django
Vladimir Rudnyh
Производительность в Django
Производительность в DjangoПроизводительность в Django
Производительность в Django
MoscowDjango
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
Zestranec
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
Zestranec
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
Positive Hack Days
10 - Web-технологии. MVC фреймворки (продолжение)
10 - Web-технологии. MVC фреймворки (продолжение)10 - Web-технологии. MVC фреймворки (продолжение)
10 - Web-технологии. MVC фреймворки (продолжение)
Roman Brovko
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4
Technopark
11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД
Roman Brovko
Selenium: начало работы
Selenium: начало работыSelenium: начало работы
Selenium: начало работы
Paul Stashevsky
CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)
Dmitry Evteev
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Dmitry Evteev
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
Igor Shkulipa
Javascript
JavascriptJavascript
Javascript
Vasya Petrov
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJS
Yura Bogdanov
Selenium: приемы работы
Selenium: приемы работыSelenium: приемы работы
Selenium: приемы работы
Paul Stashevsky
Максим Щепелин. "Unittesting. Как?"
Максим Щепелин. "Unittesting. Как?"Максим Щепелин. "Unittesting. Как?"
Максим Щепелин. "Unittesting. Как?"
Python Meetup
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
Krivoy Rog IT Community
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
Яковенко Кирилл
Профилирование и отладка Django
Профилирование и отладка DjangoПрофилирование и отладка Django
Профилирование и отладка Django
Vladimir Rudnyh
Производительность в Django
Производительность в DjangoПроизводительность в Django
Производительность в Django
MoscowDjango
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
Zestranec
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
Zestranec
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
Positive Hack Days
10 - Web-технологии. MVC фреймворки (продолжение)
10 - Web-технологии. MVC фреймворки (продолжение)10 - Web-технологии. MVC фреймворки (продолжение)
10 - Web-технологии. MVC фреймворки (продолжение)
Roman Brovko
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4
Technopark
11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД
Roman Brovko
Selenium: начало работы
Selenium: начало работыSelenium: начало работы
Selenium: начало работы
Paul Stashevsky
CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)
Dmitry Evteev
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Dmitry Evteev
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
Igor Shkulipa
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJS
Yura Bogdanov
Selenium: приемы работы
Selenium: приемы работыSelenium: приемы работы
Selenium: приемы работы
Paul Stashevsky

Similar to Web осень 2013 лекция 8 (20)

Web весна 2012 лекция 7
Web весна 2012 лекция 7Web весна 2012 лекция 7
Web весна 2012 лекция 7
Technopark
django cheBit'11
django cheBit'11django cheBit'11
django cheBit'11
dva
Виталий Каторгин, Wamba
Виталий Каторгин, WambaВиталий Каторгин, Wamba
Виталий Каторгин, Wamba
Ontico
Руслан Ханов, «Контейнер сервисов — Что? Где? Когда?»
Руслан Ханов, «Контейнер сервисов — Что? Где? Когда?»Руслан Ханов, «Контейнер сервисов — Что? Где? Когда?»
Руслан Ханов, «Контейнер сервисов — Что? Где? Когда?»
Mail.ru Group
Разработка расширяемых приложений на Django
Разработка расширяемых приложений на DjangoРазработка расширяемых приложений на Django
Разработка расширяемых приложений на Django
MoscowDjango
Контейнер сервисов
Контейнер сервисовКонтейнер сервисов
Контейнер сервисов
Ruslan Hanov
Что нового в Django 1.4
Что нового в Django 1.4Что нового в Django 1.4
Что нового в Django 1.4
Илья Барышев
12 - Web-технологии. Django модели
12 - Web-технологии. Django модели12 - Web-технологии. Django модели
12 - Web-технологии. Django модели
Roman Brovko
Decorators' recipes
Decorators' recipesDecorators' recipes
Decorators' recipes
Yury Yurevich
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и MinkBehat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Mink
tyomo4ka
Разработка через тестирование в Python и Django #pyconru
Разработка через тестирование в Python и Django #pyconruРазработка через тестирование в Python и Django #pyconru
Разработка через тестирование в Python и Django #pyconru
JetStyle
Pycon Russia 2013 - Разработка через тестирование в Python и Django
Pycon Russia 2013 - Разработка через тестирование в Python и DjangoPycon Russia 2013 - Разработка через тестирование в Python и Django
Pycon Russia 2013 - Разработка через тестирование в Python и Django
Ilya Shalyapin
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
it-people
Django Rest Framework vs Graph Ql
Django Rest Framework vs Graph QlDjango Rest Framework vs Graph Ql
Django Rest Framework vs Graph Ql
Attract Group
Drf vs Graphql
Drf vs GraphqlDrf vs Graphql
Drf vs Graphql
Вадим Шевченко
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетьюИнтуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Глеб Тарасов
Как мы уменьшили сложность наших проектов
Как мы уменьшили сложность наших проектовКак мы уменьшили сложность наших проектов
Как мы уменьшили сложность наших проектов
Boris Tsema
Введение в Django
Введение в DjangoВведение в Django
Введение в Django
Илья Барышев
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4
smikler
View как чистая функция от состояния базы данных - Илья Беда, bro.agency
View как чистая функция от состояния базы данных  - Илья Беда, bro.agencyView как чистая функция от состояния базы данных  - Илья Беда, bro.agency
View как чистая функция от состояния базы данных - Илья Беда, bro.agency
it-people
Web весна 2012 лекция 7
Web весна 2012 лекция 7Web весна 2012 лекция 7
Web весна 2012 лекция 7
Technopark
django cheBit'11
django cheBit'11django cheBit'11
django cheBit'11
dva
Виталий Каторгин, Wamba
Виталий Каторгин, WambaВиталий Каторгин, Wamba
Виталий Каторгин, Wamba
Ontico
Руслан Ханов, «Контейнер сервисов — Что? Где? Когда?»
Руслан Ханов, «Контейнер сервисов — Что? Где? Когда?»Руслан Ханов, «Контейнер сервисов — Что? Где? Когда?»
Руслан Ханов, «Контейнер сервисов — Что? Где? Когда?»
Mail.ru Group
Разработка расширяемых приложений на Django
Разработка расширяемых приложений на DjangoРазработка расширяемых приложений на Django
Разработка расширяемых приложений на Django
MoscowDjango
Контейнер сервисов
Контейнер сервисовКонтейнер сервисов
Контейнер сервисов
Ruslan Hanov
12 - Web-технологии. Django модели
12 - Web-технологии. Django модели12 - Web-технологии. Django модели
12 - Web-технологии. Django модели
Roman Brovko
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и MinkBehat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Mink
tyomo4ka
Разработка через тестирование в Python и Django #pyconru
Разработка через тестирование в Python и Django #pyconruРазработка через тестирование в Python и Django #pyconru
Разработка через тестирование в Python и Django #pyconru
JetStyle
Pycon Russia 2013 - Разработка через тестирование в Python и Django
Pycon Russia 2013 - Разработка через тестирование в Python и DjangoPycon Russia 2013 - Разработка через тестирование в Python и Django
Pycon Russia 2013 - Разработка через тестирование в Python и Django
Ilya Shalyapin
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
it-people
Django Rest Framework vs Graph Ql
Django Rest Framework vs Graph QlDjango Rest Framework vs Graph Ql
Django Rest Framework vs Graph Ql
Attract Group
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетьюИнтуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Глеб Тарасов
Как мы уменьшили сложность наших проектов
Как мы уменьшили сложность наших проектовКак мы уменьшили сложность наших проектов
Как мы уменьшили сложность наших проектов
Boris Tsema
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4
smikler
View как чистая функция от состояния базы данных - Илья Беда, bro.agency
View как чистая функция от состояния базы данных  - Илья Беда, bro.agencyView как чистая функция от состояния базы данных  - Илья Беда, bro.agency
View как чистая функция от состояния базы данных - Илья Беда, bro.agency
it-people

More from Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
Technopark
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
Technopark
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
Technopark
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
Technopark
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
Technopark
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
Technopark
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
Technopark
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
Technopark
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
Technopark
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
Technopark
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
Technopark
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
Technopark
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
Technopark
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Technopark
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
Technopark
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
Technopark
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
Technopark
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
Technopark
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
Technopark
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
Technopark
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
Technopark
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
Technopark
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
Technopark
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
Technopark
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
Technopark
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
Technopark
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
Technopark
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
Technopark
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
Technopark
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
Technopark
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Technopark
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
Technopark
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
Technopark
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
Technopark
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark

Web осень 2013 лекция 8