django cheBit'11
-
Upload
dva -
Category
Technology
-
view
902 -
download
0
Transcript of django cheBit'11
![Page 1: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/1.jpg)
фреймворк, который позволяет экономить время на веб-разработку
и превращает разработку вэб-приложений в удовольствие
ИСАЕВ ИГОРЬ
![Page 2: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/2.jpg)
1 Что такое django?
2 Устройство и возможности
![Page 3: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/3.jpg)
Django Django (Джанго) — свободный фреймворк для вебприложений на языке Python.
Последняя версия1.3 (23 марта 2011)
ЛицензияBSD
Разработчики● Адриан Головатый● Саймон Виллисон● Джекоб КапланМосс
1
![Page 4: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/4.jpg)
Кто использует?
2
![Page 5: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/5.jpg)
История
3
2003: Kansas, USA 2005: BSD & v0.90 2008: v1.0 2011: v1.3
![Page 6: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/6.jpg)
4
Основные принципы
● don't repeat yourself● слабая зависимость и гибкость● быстрая разработка
![Page 7: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/7.jpg)
5
Документация
● Официальная документация ● Множество книг● Сообщество● softwaremaniacs.org
![Page 8: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/8.jpg)
6
Python
● Читаемость и лаконичность ● Мультипарадигменный язык● Стандартная библиотека
![Page 9: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/9.jpg)
7
Python
TIOBE Programming Community Index
![Page 10: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/10.jpg)
ПроизводительностьDjango
8
С производительностью у
django все хорошо
![Page 11: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/11.jpg)
Устройство
9
ModelTemplateViewURL
![Page 12: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/12.jpg)
Модель
10
Уровень доступа к даннымORM django:
# Создание таблицыclass Post(models.Model):
author = models.ForeignKey(Author) title = models.CharField(max_length=200)slug = models.SlugField(max_length=200)body = models.TextField() pub_date = models.DateTimeField(auto_now_add=True) is_active = models.BooleanField(default=True)
![Page 13: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/13.jpg)
Модель
11
Уровень доступа к даннымORM django:
# Получение данныхposts = Post.objects.all()[:5]
posts = Post.objects.filter(post_type=‘rant’)
posts = Post.objects.filter(author__name=‘Rob’)
posts = Post.objects.filter(author__name=‘Rob’).order_by(‘type’)
post = Post.objects.get(id=24)
![Page 14: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/14.jpg)
Шаблон
12
Уровень презентационной логики
{% extends "base.html" %} {# загрузить родительский шаблон #}
{% block content %} {# заполнить содержимое блока #}
<table>
{% for item in items %}<tr class="{% cycle odd,even %}"><td>{{ item.name }}</td> <td>{{ item.price }}</td> </tr>
{% endfor %}
</table>
{% endblock %}
![Page 15: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/15.jpg)
Представление Уровень бизнес логики
def posts_by_type(request, type):# Показать сообщения конкретного типа
posts = Post.objects.filter(type=type)return render_to_response( ‘postsbytype.html’, {‘posts’: posts})
def new_post(request):# Добавить новое сообщение
if request.method == ‘POST’:form = PostForm(request.POST)if form.is_valid():
form.save() else:
form = PostForm() return render_to_response( ‘mytemplate.html’, {‘form’: form})
![Page 16: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/16.jpg)
Диспетчер URL
14
urlpatters = patterns(‘’,(’^my/favorite/color/$’, ‘blog.views.my_fav_color’),
(‘^post/new/$’, ‘blog.views.new_post’),
(‘^posts/(d{4})/$’, ‘blog.views.year_archive’), (‘^posts/(d{4})/(d{2})/$’, ‘blog.views.month_archive’),(‘^posts/(?P<slug>[az]*)/$’, ‘blog.views.show_post’),
)
![Page 17: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/17.jpg)
Возможности
15
● Встроенный вебсервер● Встроенный интерфейс администратора● Библиотека создания форм● Система кэширования● Интернационализация ● Подключаемая архитектура приложений● Авторизация и аутентификация
![Page 18: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/18.jpg)
Встроенныйвебсервер
16
python manage.py runserver
![Page 19: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/19.jpg)
Админка
17
![Page 20: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/20.jpg)
Админка
18
![Page 21: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/21.jpg)
Библиотека создания форм
19
# Создание формыclass ContactForm(forms.Form):
subject = forms.CharField(max_length=100)message = forms.CharField()sender = forms.EmailField()cc_myself = forms.BooleanField(required=False)
Django сделает за нас:● Нарисует форму целиком или отдельное поле● Произведет проверку введенных данных
![Page 22: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/22.jpg)
Библиотека создания форм
20
# Создание формы из моделиPostForm(forms.ModelForm):
class Meta: model = Post
Django сделает за нас:● Нарисует форму на основе модели● Произведет проверку введенных данных ● Сохранит полученные данные в таблицу
![Page 23: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/23.jpg)
Системакэширования
21
Что можно кэшировать?● весь сайт● конкретную страницу● участок шаблона
Типы хранилищ:● memcached● база данных● файловая система● локальная память
![Page 24: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/24.jpg)
i18n
22
1 Вставить переводимые строки2 Выполнить перевод
![Page 25: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/25.jpg)
Подключаемая архитектура приложений
23
Не надо изобретать велосипед!
![Page 26: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/26.jpg)
Авторизация и аутентификация
24
![Page 27: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/27.jpg)
Недостатки
25
1 Логотип
![Page 28: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/28.jpg)
ВОПРОСЫ:
![Page 29: django cheBit'11](https://reader031.fdocuments.net/reader031/viewer/2022032217/55a78e8b1a28ab95318b461d/html5/thumbnails/29.jpg)
СПАСИБОЗА
ВНИМАНИЕ