Статьи

Ускоренный курс в Джанго

Вы ищете веб-фреймворк, который значительно сокращает время, необходимое для создания управляемых данными веб-приложений? Если это так, возможно, стоит изучить Django на основе Python. Благодаря уникальной архитектуре, обеспечивающей повторное использование кода и автоматической системе администрирования, Django — это современный уровень для независимых веб-разработчиков, а также мощный инструмент для крупномасштабных веб-проектов. В этой статье я покажу вам основы создания своего собственного сайта на Django.

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

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

Еще одна особенность убийцы — автоматическая система администратора. Когда вы создаете модели в Django, вы получаете бесплатную систему администратора для добавления, удаления и обновления, автоматически управляя базовой базой данных. Система администратора предоставит конечному пользователю богатый интерфейс для обновления данных в базе данных. Автоматическая система администрирования представляет собой комплексное комплексное решение в качестве интерфейса данных и готова к использованию «из коробки»; это также чрезвычайно настраиваемый.

Прежде чем изучать этот учебник, вы должны иметь базовый опыт веб-разработки с базой данных, и желательно иметь базовые знания Python. Опыт создания приложений PHP с некоторыми основными фреймворками достаточно. Django использует преимущества сложных подходов к веб-приложениям и требует глубокого понимания концепций веб-разработки.

Для этого урока вам понадобится Django. Просмотрите документацию по установке, если вы еще не настроили ее, щелкнув Установить официальный выпуск . Эта статья была написана с использованием 1.2 альфа; 1.1 общедоступна, и это руководство должно работать с любым выпуском 1.x.

При установке убедитесь, что инструмент django-admin.py находится в системном пути. Это должно происходить автоматически, но для проверки откройте терминал вашей системы или консоль командной строки и запустите django-admin.py ; если в выводе указано Type 'django-admin.py help' for usage (или что-то подобное), вы готовы к работе.

Чтобы исследовать инфраструктуру Django, мы собираемся создать наше собственное приложение для блога (хотя их достаточно много) и использовать его для создания простого сайта блога. Мы также будем использовать встроенные приложения администратора, комментарии и аутентификацию. Убедитесь, что вы знакомы с командной строкой, так как мы будем часто с ней работать.

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

Начните с выбора папки для хранения ваших проектов Django — я использую ~/Development/Django/ — и переключитесь на эту папку в командной строке. Нам нужно запустить новый проект Django для нашего веб-сайта, поэтому запустите django-admin.py startproject spblog когда будете готовы. Затем переключитесь на вновь созданную папку spblog и посмотрите на файлы, созданные утилитой django-admin.py (пользователи Windows: используйте dir вместо ls ). Вот как все это выглядит в терминале:

  $ cd ~/Development/Django $ django-admin.py startproject spblog $ cd spblog $ ls __init__.py manage.py settings.py urls.py 

Сценарий django-admin.py создал четыре файла, но нам действительно нужно беспокоиться только о двух: settings.py и urls.py

Ваше первое приложение Django теперь готово к работе! Давайте запустим тестовый сервер и рассмотрим его:

  $ python manage.py runserver Validating models...0 errors foundDjango version 1.2 pre-alpha SVN-11600, using settings 'spblog.settings'Development server is running at http://127.0.0.1:8000/Quit the server with CONTROL-C. 

Сценарий manage.py предоставляет доступ к ряду полезных инструментов в контексте этого конкретного проекта Django. Одним из этих инструментов является встроенный веб-сервер (только для целей разработки!), Который теперь обслуживает ваше веб-приложение по адресу http://127.0.0.1:8000/ . Загрузите этот URL в ваш веб-браузер, и вы увидите следующую страницу.

Рисунок 1. Это сработало!

Это сработало!


Как показывает страница приветствия, нам все еще нужно приложение для предоставления контента для просмотра. Начнем со встроенного администрирования сайта.

Чтобы использовать администратор сайта, нам сначала нужно настроить базу данных. Мы будем использовать файловую базу данных SQLite и установим приложение администратора. Сначала откройте settings.py и измените следующие настройки:

  DATABASE_ENGINE = 'sqlite3'DATABASE_NAME =' dev.db ' 

Нам также нужно добавить django.contrib.admin в конец параметра INSTALLED_APPS : он должен выглядеть следующим образом:

  INSTALLED_APPS = ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin',) 

Теперь вернитесь к командной строке. Мы собираемся создать базу данных с помощью команды manage.py syncdb, которая также предложит нам создать учетную запись администратора. Вот как должна выглядеть история вашей команды:

  $ python manage.py syncdb Creating table auth_permissionCreating table auth_groupCreating table auth_userCreating table auth_messageCreating table django_content_typeCreating table django_sessionCreating table django_siteCreating table django_admin_logYou just installed Django's auth system, which means you don't have any superusers defined.Would you like to create one now? (yes/no):  Creating table auth_permissionCreating table auth_groupCreating table auth_userCreating table auth_messageCreating table django_content_typeCreating table django_sessionCreating table django_siteCreating table django_admin_logYou just installed Django's auth system, which means you don't have any superusers defined.Would you like to create one now? (yes/no): yes Username (Leave blank to use '…'): E-mail address: …Password: Password (again): Superuser created successfully.Installing index for auth.Permission modelInstalling index for auth.Message modelInstalling index for admin.LogEntry model 

Создайте учетную запись с именем пользователя и паролем по вашему выбору во время процесса — вы будете использовать это для входа на сайт администратора через минуту.

Еще одна задача, которую нам нужно выполнить, прежде чем мы сможем использовать сайт администратора: настроить URL-адреса. Django имеет уникальный подход к маршрутизации URL-адресов, при котором URL-адреса не отображаются автоматически на конкретный код обработки запросов (или методы / действия контроллера, если вы использовали другую инфраструктуру MVC). Вместо этого мы используем регулярные выражения для сопоставления URL-адресов с представлениями. Подробнее об URL-адресах в Django см. В разделе « Диспетчер URL-адресов» в документации .

Откройте urls.py и раскомментируйте эти строки, относящиеся к системе администратора (однострочные комментарии Python начинаются с # ):

  из django.contrib import adminadmin.autodiscover () ⋮ (r '^ admin /', include (admin.site.urls)), 

Теперь все URL, начинающиеся с admin/ будут делегированы системе администратора. Кроме того, мы вызываем метод autodiscover : это заставит систему администратора проверять базу данных, чтобы определить, какими таблицами базы данных она будет управлять. Мы поместили эту команду в urls.py , потому что она будет запускаться один раз при каждом запуске сервера.

Сохраните urls.py и вернитесь в командную строку; сервер разработки должен был перезапуститься автоматически (если нет, убить его с помощью Ctrl C и запустить его снова).

Теперь, если мы обновим наш браузер по адресу http://localhost:8000/ , мы увидим другую страницу:


Это специальная страница 404 только для целей разработки — после того, как вы переключите DEBUG с True на False в своих настройках, она больше не появится. Однако теперь, когда у вас настроены некоторые URL-адреса, Django больше не отображает страницу приветствия и вместо этого предлагает список допустимых URL-адресов (при условии, что тот, к которому вы пытаетесь получить доступ, недействителен). Поскольку наш admin/ URL-адрес в порядке, давайте перейдем на http://localhost:8000/admin/ чтобы проверить наш админ-сайт.

Войдите на сайт администратора, используя имя пользователя и пароль, которые вы настроили при запуске команды syncdb; Вы должны увидеть домашнюю страницу администратора:


Ваш админ-сайт готов к работе! Потратьте некоторое время на изучение, создание некоторых пользователей и экспериментирование с доступными инструментами.