Rozszerzenia. Jak to rozplanować?

0

Mam zamiar pisać w Pythonie. Framework jaki wybrałem to Flask, znam jego podstawy i lepiej mi się w nim pisze niż w pyrammid, django czy web2py. Piszę sobie mały skrypt forum, mam na razie rejestrację i logowanie, tak dla przypomnienia, bo dawno nic nie pisałem. W ciągu kilku najbliższych dni lub tygodni zacznę pisanie czegoś w stylu pluginów/rozszerzeń/hooków. Tzn, wrzucam przez formularz w panelu admina jakiegoś zipa albo coś, po stronie serwera zip się rozpakowuje, zaznaczam go i po prostu kod się "wstrzykuje". Tylko nie wiem za bardzo jak się za to zabrać. Widziałem przykłady takich lightweight rozwiązań w czystym Pythonie na SO, np. http://stackoverflow.com/questions/932069/building-a-minimal-plugin-architecture-in-python
Tyle, że gołym okiem widać, że niewiele tam jest, też nie wiem czy poprawnie.

Myślę, żeby zrobić to tak, żeby pobrać listę plików i katalogów w folderze /plugins (przykładowo każdy plugin ma tam swój folder, gdzie są pliki typu readme, jakieś informacje, pliki konfiguracyjne, obrazki i oczywiście sam moduł), wypisać i wczytywać wybrane przez użytkownika rozszerzenia. Tylko takim sposobem każdy, kto ma dostęp do ACP lub do plików, może wrzucić tam cokolwiek i dzięki temu np. usunąć db albo przeciążyć serwer. To jest kwestia bezpieczeństwa, jak to rozwiązać? Poza tym, jak zrobić, by na każdej wybranej stronie plugin był wczytywany, ale tylko tam, gdzie trzeba? Na przykład mając plugin zmieniający system reputacji z lajków na plusy, żeby wczytywał się tylko w widoku tematu. Coś typu tablica z kontrolerami, do których to się będzie wczytywać?

A może jest już coś gotowego?

Potrzebuję teorii, ewentualnie przykłady kodu w dowolnej technologii webowej (niekoniecznie).
Jak będę miał jakieś pytania to najwyżej zedytuje post lub będę pisał niżej.

Nie piszę w dziale dla Pythona, bo temat nie dotyczy stricte danej technologii.

0

Podpatrz może FlaskBB forum. www.flaskbb.org

1 użytkowników online, w tym zalogowanych: 0, gości: 1