Python django с чего начать

Как правильно начать изучение django?

Обязанности:

• Разработка высоконагруженных серверных решений

• Разработка Web-сервисов

• Разработка кластерных систем обработки массивов данных

• Проектирование и оптимизация баз данных

Необходимые знания, навыки, опыт:

• Опыт разработки на Python под Unix, опыт работы с Tornado, Gevent

• Опыт написания асинхронных и многопоточных приложений

• Опыт работы со сложными структурами базы данных, отличное знание SQL

• Опыт обработки больших объёмов данных, опыт работы с Java и Hadoop

• Опыт организации параллельных вычислений с распределением нагрузки по ядрам

• Знание устройства и принципов работы сети интернет и операционных систем Unix

• Способность писать документированный код и документацию

• Технический английский язык

Очень хорошо, если вы:

• Участвовали в разработке облачных Web-сервисов и серверного ПО

• Владеете навыками системного администрирования и построения комплексной инфраструктуры

• Работали с PostgreSQL

• Имеете опыт работы с RabbitMQ

• Знакомы с noSQL

• Хорошо знакомы с протоколом HTTP

Адрес

Москва, проезд Серебрякова, 14с6, м. Ботанический сад, м. Свиблово

Тип занятости

Полная занятость, гибкий график

Контакты

Телефон: 89261402024

Email: margarita@teleofis.com

Плюсы и минусы Django

Итак, это первый урок из серии уроков «Django для начинающих».
Сегодня мы расскажем Вам о том, как установить Django, что для этого требуется и какие следует использовать инструменты.
Также, в этом уроке мы запустим установленный Django и увидим надпись «It works!«.

Во первых, нам следует подобрать хостинг, причем не простой, а тот, который поддерживает Python, поскольку Django использует Python, как основу.
Таковым хостингом является TimeWeb, лучший хостинг в СНГ на данный момент.
Регистрируемся по ссылке — http://timeweb.ru/services/?tariff=year и открываем бесплатный тестовый аккаунт на 10 дней, по истечении этого времени, придется оплатить хостинг — 120руб/месяц.

После регистрации, перейдите в Панель Управления и напишите в тех. поддержку, что бы Вам включили mod_wsgi и доступ по SSH.
Ответ Вы получите очень быстро, примерно через 5-10 минут, в редких случаях ответ приходится ждать 30 минут.

С хостингом все решено, теперь следует установить на компьютер 3 бесплатные программы, а именно WinSCP, PSPad и Putty.
WinSCP позволяет нам подсоединяться и легко управлять файлами на сервере, причем, доступ осуществляется по SSH.
PSPad это просто удобный редактор.
Putty позволит нам комфортно работать с терминалом.

Теперь Вам следует прикрутить PSPad и Putty к WinSCP, делается это в настройках.
После этого, скачайте следующие файлы себе на компьютер:
http://www.priler.com/media/uploads/files/Django/DjangoBase.zip
http://www.priler.com/media/uploads/files/Django/study.sql

Для разархивации 7z архивов на компьютер, используйте программу 7-Zip финальной версии, которую можно скачать на сайте www.7-zip.org.

Разархивируйте файл DjangoBase.zip во временную папку.
Теперь, запустите WinSCP, подключитесь к серверу и перейдите в папку public_html, после чего скопируйте в эту папку все файлы, полученные в результате разархивации файла DjangoBase.zip.
Ок, файлы Django Вы успешно скопировали на сервер.
Теперь, нужно создать Базу Данных для Django.

Перейдите в панель управления на хостинге и создайте базу данных в разделе «Базы Данных».
Зайдите в phpMyAdmin, после чего импортируйте дамп БД study.sql в созданную Вами базу данных.
Ок, с Базой Данных теперь все впорядке, осталось разобраться с настройками Django.

Откройте в WinSCP файлы index.wsgi и settings.py для редактирования(двойной клик на них).
В этих файлах Вы должны указать правильные пути в соответствующих директивах.
А именно, в файле index.wsgi будет 5 директив, в которых Вы должны указать правильные пути до соответствующих папок.
В sys.path.insert мы указываем путь до папки с приложениями, в sys.path.append указываем путь до корня, во втором sys.path.append указываем путь до приложений, в MEDIA_ROOT указываем путь до папки с мультимедийными файлами,
а в STATIC_ROOTуказываем путь до папки static.
В итоге, файл index.wsgi будет выглядеть примерно так:

# -*- coding: utf-8 -*- import os import sys sys.path.insert(0, ‘/home/p/priler/priler2.tmweb.ru/public_html/apps/’) sys.path.append(‘/home/p/priler/priler2.tmweb.ru/public_html’) sys.path.append(‘/home/p/priler/priler2.tmweb.ru/public_html/apps’) os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘settings’ MEDIA_ROOT = ‘/home/p/priler/priler2.tmweb.ru/public_html/media/’ STATIC_ROOT = ‘/home/p/priler/priler2.tmweb.ru/public_html/static/’ import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()

Еще в файле settings.py требуется указать 3 пути.
Нужные строки расположены в конце файла.
Там будут параметры MEDIA_ROOT, STATIC_ROOTи TEMPLATE_DIRS.
В итоге, нужная часть файла будет выглядеть так:

MEDIA_ROOT = ‘/home/p/priler/public_html/media/’ STATIC_ROOT = ‘/home/p/priler/public_html/static/’ ROOT_URLCONF = ‘urls’ TEMPLATE_DIRS = ( ‘/home/p/priler/public_html/templates/’, )

Ок, почти готово.
Теперь, следует настроить в Django подключение к БД.

Для этого, открываем файл settings.py и в нем, в начале, будет массив DATABASES, заполняем его данными подключения к БД.
В итоге, массив будет выглядеть так:

DATABASES = { ‘default’: { ‘ENGINE’: ‘django.db.backends.mysql’, ‘NAME’: ‘DB_NAME’, ‘USER’: ‘DB_USER’, ‘PASSWORD’: ‘DB_PASSWORD’, ‘HOST’: ‘localhost’, ‘PORT’: ‘3306’, } }

В конечном итоге, когда Вы зайдете на Ваш сайт вида LOGIN.tmweb.ru, Вы увидите надпись «It works!», означающую то, что Вы все сделали правильно!
Также Вы можете посетить админку Django по адресу LOGIN.tmweb.ru/admin/.
В качестве логина и пароля укажите слово admin.

В том случае, если что-то не так, перепроверьте все шаги, возможно Вы что-то сделали не правильно.
Если проблему решить не удается, пишите в комментарии свой вопрос, мы с радостью поможем Вам с Вашей проблемой.
Также, указывайте текст ошибки, а если этот текст слишком большой, запостите его на сайт dumpz.org и оставьте вместе с комментарием ссылку к коду.

В следующей статье мы создадим свое первое приложение в Django, для вывода «Новостей«, а также, настроим админку, что бы можно было добавлять новости с помощью админки.

Удачи!

Как сделать блог на Django 1.8 от начала и до конца

Михаил Попов    30.10.2015 22:21    Модели , Практикум Django     нет комментариев

Выполняю лабораторную работу практикума по полям моделей. Создаю модели и их представление. Эта лабораторная работа, похоже уже по традиции, рождает в результате выполнения блог. Мы делаем Блог, а значить нам нужно отображать статьи в блоге, которые будут отображаться в списке. В списке должны отображаться: — Заголовок статьи
— Дата создания статьи
— Краткий текст статьи
— Кнопка перехода к полной версии статьи

Похоже, что ничего не забыл. Еще я хочу, чтобы ссылки на мои статьи выглядели читабельно, для этого мне нужно из названия статьи делать транслит в английский язык и делать из этого ссылку. Но обо всем по порядку.

Первым делом нам понадобится модель (в текстах модулей я немного не соблюдаю PEP8, чтобы сократить лишние строчки, я это делаю для вашего удобства — вам меньше крутить колесиком мыши или двигать пальцем по экрану). Ну собственно, модуль models.py:

Стоит оговориться, что я использую класс не в таком виде, а дополнительно использую абстрактный класс, в котором содержатся поля , , , но для простоты, в статье я его не показываю. Кажется, что тут все вполне понятно, если кому не понятно, отписывайте в комментах, поясню.
Поехали дальше. Теперь нам бы хорошо вывести список всех статей и одной статьи.

8 обучалок Django

Для этого определим 2 метода в модуле views.py:

# coding: utf-8 from django.shortcuts import render, render_to_response, get_object_or_404, RequestContext from blog.models import Article def all_articles(request): articles = Article.objects.all() return render_to_response('all_articles.html', {'articles': articles}, context_instance=RequestContext(request)) def one_article_by_slug(request, slug): article = get_object_or_404(Article, slug=slug) return render(request, 'one_article.html', {'article': article}, context_instance=RequestContext(request))

Наверно тут понятно, что у нас есть 2 метода. Один метод вернет нам рендер всех статей, второй метод вернет нам одну статью по значению поля . Теперь нужно определить, как у нас будут выглядеть ссылки.
Для списка всех статей вроде как ничего сложного, а вот для отдельных статей придется попариться, т.к. нам нужно регулярное выражение, но воспользовавшись этим сервисом, я легко его подобрал, понимая что мне нужно. А мне нужна строка вида {цифры}-{буквы и тире}. Моему шаблону вполне соответствует выражение: . Соберем все это в модуль urls.py:

Собственно нам осталось определиться с шаблонами. Их у нас должно быть 2: Один для всех статей и второй для одной статьи. В шаблонах я использую зависимость от базовой страницы для простоты. Посмотрим на наши шаблоны.
Шаблон all_articles.html для вывода списка статей:

Тут понятно, что происходит: выводим в цикле заголовок, автора, дату, время и текст статьи. В низу статьи выводится кнопка с ссылкой на страницу статьи.
И в финале шаблон отдельной статьи, пока совсем простенький файл one_article.htm:

Ну вот и все. Надеюсь в последующих уроках будет рассказываться, как сделать краткий вывод статьи в списке, чтобы не отображать весь текст статьи на странице со всеми статьями. Также надеюсь, что будет про пагинацию, чтобы можно было выводить статьи быстро, хотя сейчас другой тренд — бесконечная прокрутка, но я пока к этому не готов))).  Ну и еще хочется картинки научиться вставлять и писать текст не как эта статья, а покрасивее. (Да, я уже написал об этом статью, во ссылка на нее — Как сделать блог на Django 1.8 от начала и до конца (часть 2)). Пожалейте меня. В этой статье мне пришлось прописывать все теги руками. Ну а пока что — пока. Да, чуть не забыл, нужно еще вставить социальные кнопки и возможность комментирования, но об этом в следующей статье. До встречи на страницах моего блога и практикума. если хотите изучить Python и Django, приходите учиться в spb-tut.ru.

blog comments powered by

Как правильно начать изучение django?

Язык универсальный и на его основе можно писать приложения для различных целей. При помощи дополнительных библиотек можно создавать как приложения, так и веб сайты. К примеру, для создания игр на Python понадобиться библиотека , а для создания сайтов библиотека . 

В этом видеокурсе мы изучим библиотеку Django, так как она является одной из самых популярных библиотек для Python, а также она позволяет создавать мощные современные сайты. На сегодняшний день существует большое количество популярных сайтов, которые созданы именно при помощи этой технологии, среди них такие, как:

  1. Google — крупнейшая поисковая система;
  2. YouTube — крупнейший видеохостинг;
  3. Instagram — популярное приложения для обмена фото и видео;
  4. Pinterest — крупнейший социальный интернет-сервис;
  5. The Washington Times — популярная всемирная газета.

Это только небольшой список тех компаний, которые используют эту технологию в своих продуктах. 

Как видите, перспективы изучения Django очень большие, так как сейчас все больше и больше крупных компаний ищут специалистов со знаниями именно этой библиотеки.

Поскольку Django является библиотекой языка программирования Python, то изначально стоит изучить сам язык, после чего приступать к библиотеке. Изучить язык Python можно на нашем сайта по .

В этом видео курсе мы изучим с вами все основные положения библиотеки Django, а также создадим полноценный веб сайт. Для реализации стилей на сайте мы будем использовать библиотеку Bootstrap (уроки по ней можно ), а для связи с базой данных мы будем использовать встроенную ORM систему, которая позволяет создавать таблицы в базе данных на основе классов в Python.

Создание первого приложения

Последнее обновление: 16.02.2018

Веб-приложение или проект Django состоит из отдельных приложений. Вместе они образуют полноценное веб-приложение. Каждое приложение представляет какую-то определенную функциональность или группу функциональностей. Один проект может включать множество приложений. Это позволяет выделить группу задач в отдельный модуль и разрабатывать их относительно независимо от других. Кроме того, мы можем переносить приложение из одного проекта в другой независимо от другой функциональности проекта.

При создании проекта он уже содержит несколько приложений по умолчанию.

  • django.contrib.admin

  • django.contrib.auth

  • django.contrib.contenttypes

  • django.contrib.sessions

  • django.contrib.messages

  • django.contrib.staticfiles

Список всех приложений можно найти в проекте в файле settings.py в переменной INSTALLED_APPS:

INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ]

И, конечно, мы можем создавать свои приложения, которые реализуют определенный функционал. Так, создадим в проекте, созданном в прошлой теме или новом, первое приложение. Для этого выполним в командной строке/терминале следующую команду:

python manage.py startapp firstapp

В результате в проекте Django будет создано приложение firstapp. Имя приложение указывается после . Оно может быть любым. И после выполнения этой команды мы увидим в проекте новую папку, которое будет хранить все файлы созданного приложения:

Рассмотрим вкратце его структуру:

  • папка migrations: хранит информацию, которая позволяет сопоставить базу данных и определение моделей

  • __init__.py: указывает интерпретатору python, что текущий каталог будет рассматриваться в качестве пакета

  • admin.py: предназначен для административных функций, в частности, здесь призводится регистрация моделей, которые используются в интерфейсе администратора

  • apps.py: определяет конфигурацию приложения

  • models.py: хранит определение моделей, которые описывают используемые в приложении данные

  • tests.py: хранит тесты приложения

  • views.py: определяет функции, которые получают запросы пользователей, обрабатывают их и возвращают ответ

Но пока приложение никак не задействуется. Его надо зарегистрировать в проекте Django. Для этого откроем файл settings.py и добавим в конец массива INSTALLED_APPS наше приложение:

INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘firstapp’ ]

В проекте может быть несколько приложений, и каждое из них надо добавлять таким вот образом.

Теперь определим какие-нибудь простейшие действия, которые будет выполнять данное приложение, например, отправлять в ответ пользователю строку «Hello World».

Для этого перейдем в проекте приложения firstapp к файлу views.py, который по умолчанию должен выглядеть следующим образом:

from django.shortcuts import render # Create your views here.

Изменим код следующим образом:

from django.http import HttpResponse def index(request): return HttpResponse(«Hello World!»)

В данном случае мы импортируем класс HttpResponse из стандартного пакета django.http. Затем определяется функция , которая в качестве параметра получает объект запроса request.

Оглавление

Класс HttpResponse предназначен для создания ответа, который отправляется пользователю. И с помощью выражения мы отправляем пользователю строку «Hello World!»

Теперь также в проекте Django откроем файл urls.py, который позволяет сопоставить маршруты с представлениями, которые будут обрабатывать запрос по этим маршрутам. По умолчанию этот файл выглядит следующим образом:

from django.contrib import admin from django.urls import path urlpatterns = [ path(‘admin/’, admin.site.urls), ]

Первой строкой из модуля django.contrib импортируется класс AdminSite, который предоставляет возможности работы с интерфейсом администратора. Второй строкой из модуля django.urls импортируется функция path. Эта функция задает сопоставление определенного маршрута с функцией обработки. Так, в данном случае маршрут «admin/» будет обрабатываться методом .

Но выше мы определили функцию index в файле views.py, который возвращает пользователю строку «Hello World». Поэтому изменим файл urls.py следующим образом:

from django.contrib import admin from django.urls import path from firstapp import views urlpatterns = [ path(», views.index, name=’home’), path(‘admin/’, admin.site.urls), ]

Чтобы использовать функцию views.index вначале импортируем модуль views. Затем определяем сопоставление маршрута » и функции и также дополнительно имя для маршрута: . По сути маршрут » будет сопоставляться с запросом к корню приложения.

Теперь снова запустим приложение командой

python manage.py runserver

И вновь перейдем в браузере по адресу http://127.0.0.1:8000/, и браузер нам отобразит строку «Hello World»:

НазадСодержаниеВперед

Добавить комментарий

Закрыть меню