/ Ako na port z Drupal do Django? - django, drupal

Ako na port z Drupal do Django? - django, drupal

Aký by bol najlepší spôsob, ako preniesť existujúceDrupal stránky do aplikácie Django? Mám okolo 500 stránok (väčšinou knihy) a okolo 50 blogových príspevkov. Nepoužívam žiadne moduly tretích strán. Chcel by som zachovať súčasné URLS (pre účely SEO) a migrovať databázu do Django. Vytvorím jednoduchú blogovú aplikáciu, takže migračné blogové príspevky by mali byť v poriadku. Aký by bol najlepší spôsob, ako slúžiť 500+ stránok s Django? Chcel by som používať Správcu na úpravu / pridanie nových stránok.

odpovede:

12 pre odpoveď č. 1

Všetok vývoj Django je podobný a váš bude vyhovovať vzoru.

  1. Definujte model Django pre knihy a blogové príspevky.

  2. Jednotka testuje tento model pomocou vstavaných testovacích funkcií Django.

  3. Napíšte niektoré malé nástroje na načítanie starších údajov do Django. V tomto momente si uvedomíte, že váš model Django nie je dokonalý. Dobre. Opraviť to. Opravte testy. Zopakujte zaťaženie.

  4. Nakonfigurujte predvolené administrátorské rozhranie na svojeModel. V tomto okamihu budete tráviť čas ladením admin rozhrania. Uvedomíte si, že váš dátový model je nesprávny. Čo je dobrá vec. Opravte svoj model. Opravte svoje testy. Opravte svoje náklady.

  5. Teraz, keď sú vaše údaje správne, môžete vytvoriť šablóny zo starších stránok.

  6. Vytvorte mapovanie adries a zobrazenie funkcií na naplnenie šablón z dátového modelu.

Urobte si čas, aby ste získali správny dátový model. Je to naozaj dôležité, pretože všetko ostatné je veľmi jednoduché, ak je váš dátový model pevný.


3 pre odpoveď č. 2

Je možné, že bude možné písať modely Django, ktoré pracujú so staršími databázami ("to som urobil v minulosti; manage.py inspectdb).

Budete však dodržiavať vyššie uvedené rady a navrhnúťčistú databázu pomocou konvencií Django a potom migrovať údaje. Zvyčajne píšem migračné skripty, ktoré píšu do novej databázy prostredníctvom Django a čítajú staré pomocou surových Python DB API (zatiaľ čo je možné spojiť Django s viacerých databáz súčasne, tiež).

Navrhujem tiež pozrieť sa na dostupné blogové aplikácie pre Django. Ak je zahrnutý v Pinax vyhovuje vašim potrebám, pokračujte a použite Pinax ako východiskový bod.


0 pre odpoveď č. 3

S.Lott odpoveď je po rokoch stále platný, pokúsim sa dokončiť analýzu pomocou nástrojov a formátu na vykonanie tejto úlohy.

Existuje veľa nástrojov na export Drupalu, ktoré sa odtiaľ doteraz nachádzajú, ale s tou istou požiadavkou, ktorú idem Zobrazuje zdroj údajov výber JSON ako formátu. Tento modul je veľmi pevný a dostupný pre poslednú verziu Drupalu. JSON formát je veľmi rýchly v parsovaní aj kódovaní a je ľahko čitateľný a veľmi Python-priateľský (import json).

Pomocou zobrazenia Datasource môžete vytvoriť zobrazenie uzlazoradené podľa node id (nid), zobraziť obmedzený počet prvkov na stránku, nakonfigurovať cestu zobrazenia, pridať do nej identifikátor filtra a odovzdať ho nid na čítanie všetkých prvkov, až kým nedostanete prázdnu odpoveď JSON.

Pri importovaní do Django máte aj širokú škálu nástrojov, počnúc od loaddata na zaťaženie príslušenstva, Zobrazenie Datasource exportuje JSON, ale nie je formátovaný, pretože Django očakáva príslušenstvo: môžete napísať vlastný admin príkaz na import, kde môžete mať plnú kontrolu nad tokom importu.

Môžete spustiť váš príkaz a prejsť nid = 0 akoargument a potom nechajte postup čítať, importovať a potom načítať dáta z ďalšej stránky, ktorá prešla jednoducho poslednou čítanou nid v predchádzajúcej požiadavke HTTP. Dokonca môžete obmedziť prístup k zobrazenej ceste, ale na strane importu potrebujete dodatočnú konfiguráciu.

Pokiaľ ide o výkon, len som analyzoval a importoval 15.000+ uzlov za menej ako 10 minút pomocou Django 1.8 vlastného adminového príkazu na 8 jadrovom / 8 GB virtuálnom počítači Linux a PostgreSQL ako DBMS, zaznamenávať informácie o úspešnosti a chybe do vlastného modelu pre každý uzol.

Toto sú základy pre import / export medzi týmito dvoma platformami, pre podrobné informácie som opísal všetky hlavné kroky pre export z Drupalu a potom import do Django v tejto príručke.