Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Керівництво по Django частина 2: створення скелета

  1. огляд
  2. створення проекту
  3. Створення каталогу додатка
  4. Реєстрація папки з додатком
  5. Налаштування бази даних
  6. Інші настройки проекту
  7. Підключення URL-адреси
  8. Тестування роботи скелета
  9. Запуск міграцій бази даних
  10. запуск сайту
  11. Домашнє завдання
  12. Підбиваючи підсумки

Це друга стаття з нашого керівництва по Django , Яка показує, як можна створити "скелет" сайту, як фундамент, на якому можна будувати все інше: настройки, посилання, моделі, контролери та подання.

огляд

Ця стаття показує, як можна створити "скелет" (прототип) сайту, який потім можна розширити за допомогою різних налаштувань, url адрес, моделей, уявлень, і шаблонів (ці теми будуть пояснюватися в наступних статтях).

Алгоритм наступний:

  1. Використовувати django-admin для створення папки проекту, шаблонів інших файлів, і скрипта для управління проектом (manage.py).
  2. Використовувати manage.py для створення одного або декількох додатків.

    Замітка: Сайт може складатися з однієї або декількох різних частин, наприклад: основна частина, блог, вікі, розділ завантажень, і так далі. Філософія Django підштовхує розробників створювати ці частини, як різні додатки, які, якщо знадобиться, можуть бути використані повторно в інших проектах.

  3. Зареєструвати в налаштуваннях ці додатки, щоб використовувати їх в проекті.
  4. Налаштувати маршрути url адрес для кожного з додатків.

для Сайту місцевої бібліотеки папка сайту і проекту буде називатися locallibrary, і у нас буде один додаток з назвою catalog. Верхня структура проекту буде наступною:

locallibrary / # Папка сайтуmanage.py

# Скрипт для управління проектів (створений manage.py) locallibrary / # Папка сайту / проекту (створена manage.py) catalog / # Папка додатки (також створена manage.py)

Наступні розділи статті розкладуть по поличках етапи створення "скелета", і покажуть вам, як можна перевірити зроблені зміни. В кінці статті ми обговоримо деякі інші настройки сайту, які можна призначити на цьому етапі.

створення проекту

Для початку відкрийте командний рядок / термінал, перейдіть в ту папку, куди ви хочете помістити проект Django (краще в папці профілю користувача C: \ Users \ user_name, при запуску командного рядка використовується саме ця директорія), і створіть папку для вашого нового сайту ( в даному випадку: locallibrary). Потім увійдіть в цю папку, використовуючи команду cd:

mkdir locallibrary cd locallibrary

Створіть нову папку, використовуючи команду django-admin startproject як в прикладі нижче, і потім зайдіть в створену папку.

django-admin startproject locallibrary. cd locallibrary

Команда django-admin створить файлову структуру, як в прикладі нижче:

locallibrary /manage.pylocallibrary /

settings.py urls.py wsgi.py

Підпапка проекту locallibrary це ключова директорія нашого проекту:

  • settings.py містить в собі всі настройки проекту. Тут ми реєструємо додатки, задаємо розміщення статичних файлів, налаштування бази даних і так далі.
  • urls.py задає асоціації url адрес з уявленнями. Незважаючи на те, що цей файл може містити всі налаштування url, зазвичай його ділять на частини, по одній на додаток, як буде показано далі.
  • wsgi.py використовується для налагодження зв'язку між вашим Django додатком і веб-сервером. Ви можете сприймати його, як утиліту.

Скрипт manage.py використовується для створення додатків, роботи з базами даних і для запуску отладочного сервера.

Створення каталогу додатка

Виконавши попередні кроки, запустіть наступну команду для створення каталогу додатка, який буде розміщений всередині папки locallibrary (команду необхідно виконувати з папки, в якій знаходиться manage.py):

python3 manage.py startapp catalog

Замітка: наведена вище команда справедлива для GNU Linux / Mac OS. На Windows команда повинна мати вигляд: py -3 manage.py startapp catalog

Якщо ви працюєте під Windows, замінюйте команду python3 на py -3 в цій та наступних статтях.

Ця команда створить нову папку і наповнить її файлами різних частин програми (виділені напівжирним нижче). Більшість файлів названі, виходячи з їх призначення (наприклад контролери (views) повинні знаходиться під views.py, моделі в models.py, тести в tests.py, настройки адміністративної частини в admin.py, реєстрація додатки в apps.py) і вже містять деякий шаблонний код для роботи з вищеназваними об'єктами.

Оновлена ​​директорія повинна виглядати наступним чином:

locallibrary /

manage.py locallibrary / catalog / admin.py apps.py models.py tests.py views.py __init__.py migrations /

Крім перерахованих вище файлів були створені:

  • Папка migrations використовується, щоб зберігати "міграції" - файли, які дозволяють вам автоматично оновлювати базу даних у міру зміни моделей.
  • __init__.py - порожній файл для того, щоб Django і Python розпізнавали папку як Python модуль і дозволяє нам використовувати його об'єкти всередині інших частин проекту.

Замітка: Помітили, що деякі файли не вистачає? У той час, як там знайшли собі місце файли для контролерів (views) і моделей (models), файлів для настройки url соотносітелен, шаблонів, і статичних файлів створено не було. Далі ми покажемо, як їх створити (вони не обов'язкові для кожного сайту, але потрібні в даному прикладі).

Реєстрація папки з додатком

Після створення програми, нам потрібно зареєструвати його в проекті, щоб різні утиліти зачіпали його своєю дією (наприклад при додаванні моделей в базу даних). Додатки реєструються додаванням їх назв в список INSTALLED_APPS в настройках проекту (який, як ми пам'ятаємо, називається settings.py).

Відкрийте файл locallibrary / locallibrary / settings.py і знайдіть в ньому список INSTALLED_APPS. Потім додайте новий рядок в кінець списку, як показано напівжирним нижче.

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles' , 'catalog.apps.CatalogConfig',]

Новий рядок вказує на файл конфігурації програми (CatalogConfig), який був створений в /locallibrary/catalog/apps.py, коли ви створили додаток.

Замітка: Легко помітити, що в INSTALLED_APPS вже підключено велику кількість додатків (і об'єктів MIDDLEWARE, нижче у файлі конфігурації). Вони додають підтримку адмін-панелі Django і, як наслідок, величезна кількість функціоналу (включаючи сесії, аутентифікацію та інше).

Налаштування бази даних

На цьому кроці зазвичай вказують базу даних для майбутнього проекту - має сенс використовувати для розробки і розміщеного в Мережі одну і ту ж базу даних, по можливості, щоб виключити відмінності в поведінці. Про різні варіанти ви можете прочитати в документації Django в розділі Бази даних .

Ми будемо використовувати базу даних SQLite для цього проекту, бо не предпологаются велику кількість одночасних запитів на неї, а ще тому, що для її настройки зовсім не треба нічого робити! Ви можете бачити, що база даних вже налаштована в settings.py (детальна інформація вказана нижче):

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join (BASE_DIR, 'db.sqlite3'),}}

Так як ми використовуємо SQLite, то нам не потрібно нічого робити.

Давайте продовжимо!

Інші настройки проекту

Файл settings.py так само застосовується і для деяких інших налаштувань, але на даному етапі має сенс поміняти хіба що TIME_ZONE - це значення має бути представлено рядком, зазначеної в списку часових поясів tz (Колонка TZ в таблиці, в рядку тимчасової зони, яка вам потрібна). Змініть TIME_ZONE на одному з полів з таблиці, яка відповідає вашому часовому поясу. наприклад:

TIME_ZONE = 'Europe / Moscow'

У файлі присутній дві настройки, які не потрібно змінювати зараз, але про призначення яких слід знати:

  • SECRET_KEY. Це секретний ключ, який використовується Django для підтримки безпеки сайту. Якщо ви розкриєте цей ключ в процесі розробки будь-кому, то необхідно буде його змінити (можливо вважати його з будь-якого файлу на сервері або змінної оточення) коли будете розміщувати проект на сервер.
  • DEBUG. Включає докладні повідомлення про помилки, замість стандартних HTTP статусів відповідей. Повинно бути змінено на False на сервері, так як ця інформація дуже багато розповість хакерам.

Підключення URL-адреси

При створенні сайту, буде створений файл зіставлення URL (urls.py) в корені проекту. Хоча можна використовувати його для обробки всіх URL адрес, більш доцільно підключати окремі файли зіставлень для кожної програми.

Відкрийте locallibrary / locallibrary / urls.py і зверніть увагу на закоментувавши текст, який пояснює суть того, що відбувається.

"" "Locallibrary URL Configuration The` urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.10/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url (r '^ $', views.home, name = 'home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url (r '^ $', Home.as_view (), name = 'home') Including another URLconf 1. Import the include () function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url (r '^ blog /', include ( 'blog.urls')) "" "from django.urls import path from django.contrib import admin urlpatterns = [path ( 'admin /', admin .site.urls),]

URL співвідношення зберігаються в змінної urlpatterns, яка є списком функцій path (). Кожна path () функція або асоціює шаблон URLс контролером (views) або ж його з іншим таким списком (у другому випадку, перший URL стає "базовим" для інших, які визначаються в дочірньому списку). Список urlpatterns инициализирует список функції, яка, наприклад, співвідносить admin / с модулем admin.site.urls, який містить власний файл-соотносітелен.

Додайте рядки, наведені нижче в низ файлу urls.py, щоб додати новий елемент до списку urlpatterns. Цей елемент містить url () який направляє запити з URL catalog / к модулю catalog.urls (файл з відносним шляхом /catalog/urls.py).

# Використовуйте include () щоб додавати URL з каталогу додатка from django.urls import include from django.urls import path urlpatterns + = [path ( 'catalog /', include ( 'catalog.urls')),]

Тепер давайте переспрямуємо кореневої URL нашого сайту (наприклад 127.0.0.1:8000) на URL 127.0.0.1:8000/catalog/; це єдиний додаток, яке ми збираємося використовувати, тому це цілком розумно. Щоб це використовувати, нам знадобиться спеціальна функція (RedirectView), яка приймає першим параметром новий відносний URL на який слід перенаправляти (/ catalog /) коли зазначений у функції url () адреса співвідноситься з адресою запиту (кореневої URL, в даному випадку).

Додайте наступні рядки, теж в кінець файлу:

# Додайте URL співвідношення, щоб перенаправити запити з корневового URL, на URL додатка from django.views.generic import RedirectView urlpatterns + = [path ( '', RedirectView.as_view (url = '/ catalog /', permanent = True)), ]

Django поширював статичні файли (CSS, JavaScript, і зображення) за замовчуванням, але це було б вкрай корисно на етапі розробки нашого сайту. В самому кінці нашого URL соотносітелен, можна включити розміщення статичних файлів.

Додайте останню частину в кінець файлу:

# Використовуйте static () щоб додати співвідношення для статичних файлів # Тільки на період розробки from django.conf import settings from django.conf.urls.static import static urlpatterns + = static (settings.STATIC_URL, document_root = settings.STATIC_ROOT)

Замітка: Існують різні способи доповнення списку urlpatterns (в прикладі ми просто додавали об'єкт, іспольщуя оператор + = щоб чітко розділити початковий і дописаний код). Замість цього, ми могли б додати співвідношення всередину визначення змінної:

urlpatterns = [path ( 'admin /', admin.site.urls), path ( 'catalog /', include ( 'catalog.urls')), path ( '', RedirectView.as_view (url = '/ catalog /' , permanent = True)),] + static (settings.STATIC_URL, document_root = settings.STATIC_ROOT)

Крім того, ми додали import вниз файлу (from django.urls import include), щоб бачити, що ми додали, але зазвичай все import'и додаються в верхню частину файлу.

Наостанок, створіть файл urls.py всередині папки catalog, і додайте наступний код, щоб визначити (порожній) urlpatterns. Сюди ми будемо додавати наші URL співвідношення, у міру розробки сайту.

from django.urls import path from. import views urlpatterns = []

Тестування роботи скелета

На цьому, ми створили прототип сайту. Поки сайт нічого не вміє робити, але варто запустити його, щоб переконатися, що ми нічого не зламали.

До цього, нам належить вперше запустити міграцію бази даних. Це оновить нашу базу даних і додасть туди необхідні моделі (і прибере деякі попередження, які були б показані при спробі запуску).

Запуск міграцій бази даних

Django використовує Об'єктний соотносітелен Зв'язків (ORM) щоб співвідносити визначення моделей в Django додатку зі структурами даних, які використовуються базою даних. Коли ми міняємо наші моделі, Django відстежує зміни і може створити файли міграцій (в папці / locallibrary / catalog / migrations /) щоб застосувати відповідні структури даних до бази, щоб та відповідала моделі.

При створенні сайту, Django автоматично додав кілька моделей, щоб ми могли їх використовувати в адмін-панелі (про яку ми поговоримо пізніше). Виконайте наступні команди, щоб створити необхідні таблиці в базі даних, що відповідають цим моделям (переконайтеся, що ви перебуваєте в папці з manage.py):

python3 manage.py makemigrations python3 manage.py migrate

Попередження: Необхідно виконувати команди вище кожен раз, коли ви міняєте моделі таким чином, що структура таблиці зміниться (включаючи додавання і видалення як окремих полів, так і цілих моделей).

Команда makemigrations створює (але не застосовує) міграції для всіх додатків, які встановлені в ваш проект (ви так само можете вказати в кінці ім'я конкретного додатка, щоб створити міграції тільки для нього). Це дає вам можливість перевірити код перед тим, як їх застосувати - коли ви станете добре розбиратися в Django, то зможете навіть міняти їх!

Команда migrate застосовує створені міграції до бази (Django відстежує, які міграції були створені для даної бази).

Замітка: Подивіться розділ міграції в документації Django щоб отримати інформацію про менш поширених командах для управління міграціями.

запуск сайту

Під час розробки, ви можете перевірити свій сайт, розмістивши його на вбудованому отладочном сервері, і переглянувши його в своєму браузері.

Замітка: Налагоджувальний веб-сервер не настільки функціональний і продуктивний, для постійного проживання, але це найпростіший спосіб запустити свій сайт на Django і перевірити його на наявність помилок. За замовчуванням, він розмістить сайт на вашому комп'ютері (http://127.0.0.1:8000/), але ви так само можете вказати різні комп'ютери у вашій мережі для цієї мети. Для отримання більшої кількості інформації загляньте в розділ django-admin і manage.py: оцінний сервер документації Django.

Відкрийте веб-сервер, використовуючи команду runserver (в тій же папці, що і manage.py):

python3 manage.py runserver Performing system checks ... System check identified no issues (0 silenced). September 22, 2016 - 16:11:26 Django version 1.10, using settings 'locallibrary.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.

Коли сервер запуститься, ви зможете відвідати сайт за адресою http://127.0.0.1:8000/ в вашому веб-браузері. Ви повинні побачити сторінку з помилкою, навроде цієї:

Не хвилюйтеся! Ця сторінка повинна з'явитися і повідомити нам, що ми ще не налаштували жодної сторінки в модулі catalogs.urls (на який ми були перенаправлені запросили кореневої URL сайту).

Замітка: Показана вище сторінка відкриває нам одне з чудових властивостей Django - автоматичні звіти про помилки. На екрані з помилкою відображається безліч корисної інформації, коли сторінка не знайдена, або помилка була викликана кодом. В даному випадку, ми бачимо, що запитаний URL не відповідає жодному шаблоном (із зазначених). Подібні звіти будуть вимкнені при DEBUG = False (коли ми розмістимо додаток до Мережі), в цьому випадку буде показана менш інформативна, але більш дружелюбна до користувача сторінка (яку вам треба буде створити - прим. Перекладача).

На даному етапі, ми зрозуміли, що Django працює належним чином!

Замітка: Вам слід перезапускати міграцію і заново тестувати сайт, після того як ви робите важливі зміни. Повірте, це не займе багато часу!

Домашнє завдання

Папка catalog / містить файли контролерів (views), моделей (models), і інших частин програми. Перегляньте ці файли.

Як було написано вище, URL соотносітелен для адмін-панелі був підключений в файлі urls.py. Увійдіть в адміністративну частину і подивіться, що станеться (ви можете знайти URL зі співвідношення вище).

Підбиваючи підсумки

Тепер ви створили повноцінний скелет веб-додатки, який тепер ви можете розширити url соотносітелен, контролерами (views) і моделями (models).

тепер скелет Сайту місцевої бібліотеки зроблений і запущений, тепер саме час почати писати код, який навчить сайт робити те, що він повинен робити.

Також подивіться ці статті

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.