Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Что нового в Django 1.5
Search
Moscow Python Meetup
PRO
January 24, 2013
Programming
3
1.8k
Что нового в Django 1.5
Илья Барышев (Future Colors)
Краткий обзор новых фич готовящегося релиза и советы по переходу.
Moscow Python Meetup
PRO
January 24, 2013
Tweet
Share
More Decks by Moscow Python Meetup
See All by Moscow Python Meetup
Moscow Python Meetup №106. Евгений Блинов (The Mutating Company, Founder). Суперфункции
moscowdjango
PRO
0
71
Moscow Python Meetup №106. Валерий Карпузов (SmartFX, Team Lead). Пиши, сокращай — Code Golf на Python
moscowdjango
PRO
0
110
Moscow Python Meetup №106. Николай Казак (Технический лидер роботизации бизнес-процессов, МТС Финтех). RPA по-взрослому
moscowdjango
PRO
0
49
Moscow Python Meetup №105. Кирилл Гладких (ООО Штаб, Python разработчик). Как вайбкодить по-сениорски
moscowdjango
PRO
0
130
Moscow Python Meetup №105. Пётр Андреев (МФТИ, лектор по курсу Advanced Python). Дотянуться до кремния. HighLoad Python: SIMD, GPU
moscowdjango
PRO
0
67
Moscow Python Meetup №105. Антон Важнецов (K2 Cloud, Тимлид). Подход к глубоким изменениям. Миграция SDN в боевом облаке на Python
moscowdjango
PRO
0
52
Moscow Python Meetup №104. Как научить Алису рецептам дореволюционной кухни
moscowdjango
PRO
0
51
Moscow Python Meetup №104. Оптимизация сервиса АБ тестирования или как уйти от Django ORM к Fastapi query builder
moscowdjango
PRO
0
82
Moscow Python Meetup №104. CI/CD Pytest для тестирования качества данных здравоохр. в Великобритании
moscowdjango
PRO
0
60
Other Decks in Programming
See All in Programming
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
330
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
800
Fluid Templating in TYPO3 14
s2b
0
130
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
dchart: charts from deck markup
ajstarks
3
1k
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
230
CSC307 Lecture 10
javiergs
PRO
1
660
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
Package Management Learnings from Homebrew
mikemcquaid
0
230
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
130
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Context Engineering - Making Every Token Count
addyosmani
9
670
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
440
The World Runs on Bad Software
bkeepers
PRO
72
12k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Between Models and Reality
mayunak
1
200
Building Applications with DynamoDB
mza
96
6.9k
Un-Boring Meetings
codingconduct
0
200
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Ethics towards AI in product and experience design
skipperchong
2
200
Building Adaptive Systems
keathley
44
2.9k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
170
Transcript
None
10 месяцев разработки ~1700 коммитов Переезд на гитхаб ~550 closed
PR Чуточку статистики
https://docs.djangoproject.com/en/dev/releases/1.5/ Улучшена документация • CBV • Testing Tutorial (part 5)
• Reusable apps • Writing your first patch for Django
Custom User Model
# myapp.models.py class MyUser(AbstractUser): email
= EmailField(max_length=254, ...) favorite_pony = CharField(max_length=20) ... USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['favorite_pony'] Пример custom User model
Обращаемся к модели # settings.py AUTH_USER_MODEL = 'myapp.MyUser' # Django
1.4 from django.contrib.auth.models import User # Django 1.5 from django.contrib.auth import get_user_model User = get_user_model()
AbstractUser User username first_name last_name email
is_staff is_active date_joined USERNAME_FIELD REQUIRED_FIELDS get_absolute_url() get_full_name() get_short_name()
AbstractBaseUser AbstractUser User password last_login get_username() is_anonymous() is_authenticated() set_password(...) check_password(...)
set_unusable_password() has_usable_password()
AbstractBaseUser AbstractUser User PermissionsMixin get_group_permissions(…) get_all_permissions(…) has_perm(…) has_perms(…) has_module_perms(…) is_superuser
AbstractBaseUser AbstractUser User PermissionsMixin
Составные ключи index_together = [ ["pub_date",
"deadline"], ]
product.save( update_fields=['name'] ) Частичное сохранение моделей
poll = Poll.objects.all()[0] >> 1 query choice = poll.choice_set.all()[0] >>
1 query choice.poll is poll >> 0 queries Кэширование related моделей
Streaming responses # 1.4 response = HttpResponse(content=myiterator) # 1.5 response
= StreamingHttpResponse( streaming_content=myiterator) def iterator(): for x in range(1,11): yield "%s\n" % x time.sleep(1)
{% verbatim %} {% verbatim %} {% endverbatim
%} JQuery Template {{if morning}}Drink coffee.{{/if}}
https://github.com/chrisdickinson/plate <script type="text/javascript" src="plate.js"> var template = new plate.Template(
'Hello {{ world }}'); template.render({world: 'everyone'}, function(err, data) { console.log(data) });
{{ view.template_name }} Переменная {{ view }} body.html {{ view.my_attribute
}} Hey class MyView(TemplateView): template_name = 'body.html' my_attribute = 'Hey'
# Django 1.2 {% url viewname %} # Django 1.3
{% load url from future %} {% url 'viewname' %} # Django 1.5 {% url 'viewname' %}
https://github.com/futurecolors/django-future-url django-‐make-‐future-‐url.py -‐-‐dry-‐run
QuerySet.bulk_create() работает с SQLite3 Сигнал user_login_failed Приятные мелочи Стандартные 404
и 500 {% if 'someapp.someperm' in perms %} GeoDjango PostGIS 2.0 loaddata(ignorenonexistent=True) Получение ContentType для прокси-моделей django.utils.timezone.localtime view.resolver_match django logger печататает в консоль mod_wsgi auth handler True, False, Null в шаблонах
Python 3*
Версии Python Django 1.3 Python 2.4+ Django 1.4 Python 2.5+
Django 1.5 Python 2.6+ Python 3.2+
django.utils.six в Django 1.4.2+
# python 2 for k, v in mydict.iteritems(): # python
2 & 3 import six for k,v in six.iteritems(mydict):
# python 2.6 & 3 from __future__ import print_function
print('Hello world!', end=' ') # python 2 print 'Hello world!', # python 3 print('Hello world!', end=' ')
https://github.com/mitsuhiko/python-modernize Автоматизируем six
http://python3porting.com/
None
django Pillow django-model-utils django-picklefield embedly-python pytils django-storages docutils south requests
django-discover-runner mock django-nose psycopg2 dj-database-url 3 http://moscowdjango.ru/py3/
Пробуйте Django 1.5 @ Пишите на Python 3
Спасибо
[email protected]
@coagulant http://blog.futurecolors.ru/