/ / Як порту з Drupal в Django? - джанго, друпал

Як зайти з Drupal в Django? - джанго, друпал

Який би був кращий спосіб порту існуючогоСайт Друпалу для програми Django? У мене є близько 500 сторінок (головним чином, модуль книг) та близько 50 повідомлень блогу. Я не використовую будь-які сторонні модулі. Я хотів би зберегти поточні URL-адреси (для цілей SEO) та перенести базу даних в Django. Я буду створювати просту програму для блогу, тому перенесення повідомлень в блозі має бути в порядку. Який би найкращий спосіб обслуговувати 500 сторінок з Django? Я хотів би використовувати Admin для редагування / додавання нових сторінок.

Відповіді:

12 для відповіді № 1

Вся розробка Django подібна, і ваша буде відповідати шаблону.

  1. Визначте модель Django для ваших книг і публікацій в блозі.

  2. Модульний тест, який використовує модель із вбудованими можливостями тестування Django.

  3. Напишіть кілька невеликих утиліт для завантаження застарілих даних у Django. На цьому етапі ви зрозумієте, що ваша модель Джанго не ідеально. Добре. Виправ це. Виправте тести. Перезавантажити навантаження.

  4. Налаштувати інтерфейс адміністратора за умовчанням для вашогомодель На цьому етапі ви будете витрачати час на налаштування інтерфейсу адміністратора. Ви зрозумієте, що ваша модель даних неправильна. Що добре. Виправте вашу модель. Виправте свої тести. Виправте вашу навантаження.

  5. Тепер, коли ваші дані правильні, ви можете створювати шаблони зі своїх застарілих сторінок.

  6. Створіть відображення URL-адреси та перегляньте функції для заповнення шаблонів з моделі даних.

Візьміть час, щоб отримати правильну модель даних. Це дійсно важливо, тому що все інше дуже просто, якщо ваша модель даних є твердою.


3 для відповіді № 2

Може бути можливо написати моделі Django, які працюють з застарілою базою даних (я це робив раніше; див. Документи на manage.py inspectdb)

Тим не менше, я дотримуюсь вищезазначеного та розробляю aчистої бази даних, використовуючи конвенції "Джанго", а потім перенести ці дані. Я зазвичай пишу міграційні скрипти, які записують в нову базу даних через Django і читають старий, використовуючи необроблені API Python DB (тоді як можна пов'язати Django з кілька баз даних одночаснотеж)

Я також пропоную поглянути на наявні додатки для блогів для Django. Якщо хтось включений в Pinax відповідає вашим потребам, йти вперед і використовувати Pinax як відправну точку.


0 для відповіді № 3

С.Лотт відповість як і раніше діє через роки, я намагаюся завершити аналіз за допомогою інструментів і формату, щоб виконувати цю роботу.

Існує багато інструментів експорту Drupal, які зараз існують, але з таким самим запитом я йду Перегляди джерела даних вибирати JSON як формат. Цей модуль дуже міцний і доступний для останньої версії Drupal. The JSON формат дуже швидко аналізує та кодує, і він легко читається і дуже дружелюбний для Python (імпортувати json)

Використовуючи View Data Source, ви можете створити вигляд вузлавідсортовані за ідентифікатором вузла (nid), показують обмежену кількість елементів на кожній сторінці, налаштовують шлях перегляду, додають до нього ідентифікатор фільтра і передають йому нуль, щоб прочитати всі елементи, доки не отримаєте порожній відповідь JSON.

При імпорті в Django у вас також є широкий набір інструментів, починаючи з loaddata для завантаження світильників. Перегляди Datasource експортується JSON, але він не форматований, оскільки Django очікує світильників: ви можете написати користувацька команда адміністратора зробити імпорт, де ви можете повністю контролювати потоки імпорту.

Ви можете почати команду, передаючи nid = 0 якаргумент, а потім дозвольте процедурі прочитати, імпортувати, а потім завантажувати дані з наступної сторінки, проходячи просто останню нуль, прочитану в попередньому HTTP-запиті. Ви навіть можете обмежити доступ до шляху в режимі перегляду, але вам потрібна додаткова конфігурація на стороні імпорту.

Що стосується продуктивності, то, наприклад, я проаналізував та імпортував 15 000 + вузлів менш ніж за 10 хвилин за допомогою команди користувацького адміністратора Django 1.8 на віртуальній машині з 8-ядерною / 8 ГБ Linux і PostgreSQL як СУБД, протоколювання успіху та інформації про помилки в спеціальну модель для кожного вузла.

Це основи для імпорту / експорту між цією платформою, для детальної інформації, яку я описав усім основні кроки для експорту з Drupal, а потім імпорт до Django в цьому посібнику.