Створення сайтів на Django, частина 1, TrueCryer - s Blog
Для необізнаних, Django — це веб-фреймворк для створення сайтів, написаний мовою Python. Відповідно мова і є однією з основних її переваг, оскільки забезпечує досить високу продуктивність. На сьогоднішній момент Django вважається основним фреймворком Python для розробки веб-сайтів та веб-сервісів.
Для того, щоб розуміти все, що відбувається в цій статті, необхідно знати основи ОВП, більш-менш знати Python та володіти основами роботи з командним рядком (Windows або Linux, що більше подобається). Як дистрибутиви будуть використані Python 2.7, Django 1.5, і поперемінно Ubuntu 13.10 і Windows 7. В цілому інформація буде застосовна для всіх версій Django, починаючи з 1.3.
Спочатку потрібно роздобути дистрибутиви. Користувачі Linux можуть встановити їх через менеджер пакетів (Django зазвичай називається python-django), користувачі Windows завантажити Python звідси і Django звідси. При цьому Python встановиться через інсталер, а для Django доведеться використовувати командний рядок. Розпакуйте архів, перейдіть в командному рядку в папку з дистрибутивом і скомандуйте:
т.к. файли з розширенням *.py повинні були зареєструватися під час встановлення Python, Windows автоматично запустить знайде інтерпретатор Python і запустить установку через нього.
Після того, як всі дистрибутиви встановлені, ми можемо розпочати створення нашого першого проекту на Django. Для цього є спеціальна утиліта django-admin.py. Для користувачів Linux вона може звучати як з розширенням, так і без (залежить від дистрибутива) і швидше за все вона вже зареєстрована в PATH. Перейдіть до командного рядка в каталог, де хочете створити проект і скомандуйте:
django-admin.py startprojectmydjangosite
або будь-яке інше ім'я проекту, але пам'ятайте, що ім'я має відповідати стандартам іменування пакетів у Python, які подібні до стандартів іменування змінних.
Користувачів Windows чекає каверза, оскільки django-admin в PATH не зареєстрований, і його доведеться запускати повним шляхом. Якщо встановлювати все за стандартним, то він зазвичай розташовується в папці C: Python27 Scripts, тому скомандуйте:
C:\Python27\Scripts\django-admin.py startproject mydjangosite
Перейдіть до папки та ознайомтеся з вмістом. Всередині неї повинен лежати файл manage.py (який послужить нам заміною django-admin) і каталог з ім'ям проекту. Будемо називати поточну папку кореневою і трохи заглибимося всередину цього фреймворку. Він складається з ядра, допоміжних бібліотек та додатків (apps). При цьому сам розробник пише переважно додатки. Всі ці програми, по суті, є пакетами Python, мають певну структуру і зазвичай їх розміщують у кореневій папці проекту (але необов'язково). Зараз у нас є тільки одна програма (скоріше псевдо-додаток) - це безпосередньо папка з проектом, в якій лежать файли налаштувань. Ліричний відступ для власників Django 1.3: він каталог із проектом не створює, а поміщає всі налаштування в кореневий каталог.
У файлі ми побачимо безліч налаштувань за замовчуванням (насправді налаштувань набагато більше) але всі одразу вони поки що не потрібні. Зупинимося лише на кількох. Спочатку, для зручності, визначимо каталог, в якому розміщується проект. Так як Django вважає за краще працювати з абсолютними шляхами, ми спробуємо цієї "проблеми" уникнути. Додамо на початок файлу:
from os import path PROJECT_DIR = path.abspath(path.dirname(__file__))
Далі створимобазу даних нашого проекту. Django працює з безліччю різних СУБД, але для простоти ми скористаємося SQLite3. Знайдемо налаштування DATABASES, підключимо backend та пропишемо шлях до бази:
DATABASES = 'default': 'ENGINE': 'django.db.backends.sqlite3', 'NAME': path.join(PROJECT_DIR, 'db.sqlite'),
Далі ми підключимо ще один додаток. Воно також штатне і називається django.contrib.flatpages. Воно служить для створення простих HTML-сторінок, які виводяться на сайт без обробки.
Отже, в кінці змінної INSTALLED_APPS повинні з'явитися дві програми:
INSTALLED_APPS = ( . 'django.contrib.admin', 'django.contrib.flatpages', )
На цьому початкова підготовка файлу settings.py закінчено. Тепер потрібно підготувати файл url.py. Надалі в цьому файлі будуть прописуватись всі URL, точніше їх шаблони, які розумітиме Django. І до URL'ів у свою чергу підв'язуватимуться процедури формування відповіді.
from django.contrib import admin admin.autodiscover()
і останній URL:
Цими діями ми підключили адмінку.
Прописавши програми у settings.py, ми лише прописали програми. Тепер потрібно створити базу даних для цих програм. Для цього в командному рядку з кореневої папки виконуємо наступну команду:
python manage.py syncdb
для Linux. У рядку почнуть з'являтися повідомлення про створені таблиці бази даних. Також синхронізація попросить створити адміністратора сайту, відповідаємо yes та вводимо дані адміністратора.
Після завершення синхронізації можна запускати так званий сервер розробки. Разом з Python постачається елементарний веб-сервер, який можна активувати через Django, автоматично підв'язавши до нього поточний проект. Скомандуйте:
і з'явиться повідомлення про запущений сервер. Залишити сервер можна командою Ctrl+C. Тепер можна відкривати браузер.
Перейдемо за посиланням до списку сторінок, натиснемо Add flat page у правому кутку, щоб створити нову. І заповнимо її так, як показано на малюнку: