2011-01-05 13 views
5

Ci sono cose come Django gemme - plug-in, come se non ci sono le gemme del rubino,Esistono cose come gemme Django - plugin, come ci sono le gemme del rubino

come plugin di gestione di autenticazione, ecc

+2

Significa Python "gems" o Rails "plugin"? – miku

+1

Si prega di non porre domande a cui la risposta è "Sì" o "No". :-) –

+1

@Lennart - perché no? È una domanda rara a cui solo una risposta "sì" o "no" è utile - come mostrano entrambe le risposte a questa domanda, fornendo informazioni al di là di un semplice "sì" o "no". –

risposta

3

Ci sono uova di Python, che sono molto simili a Ruby Gems. Sono sicuro che alcuni di loro aggiungono funzionalità a Django. E ci sono cose come Django Extensions

4

Per aggiungere un po 'più in dettaglio alle altre risposte, l'equivalente di gemme del rubino sono Python "uova". Non conosco Ruby quindi non sono sicuro di quanto sia esatta l'equivalenza, ma le uova sono fondamentalmente i file di installazione per i pacchetti Python - danno a Python informazioni su quali pacchetti sono installati. L'uovo viene in genere creato eseguendo ./setup.py install dall'interno della directory del pacchetto o utilizzando setuptools, ad esempio pip install NAME-OF-PACKAGE (quest'ultimo metodo di solito è più semplice in quanto scaricherà i file per te e installerà tutte le dipendenze necessarie). Va notato che qualsiasi pacchetto (qualsiasi cartella con un file __init__.py in esso) o un modulo posizionato su PYTHONPATH può essere importato da Python; installarli solo aiuta a tenere traccia di quali pacchetti vengono utilizzati e rende più facile lavorare con pacchetti complicati che hanno molte dipendenze.

In Django, come menzionato da @EinLama, questi pacchetti aggiuntivi funzionano come App (in genere includono file come models.py, views.py, urls.py, ecc.). Alcuni di questi sono effettivamente installati da Python come descritto sopra, e alcuni sono solo cartelle che dovrebbero essere messe sul tuo PYTHONPATH (in entrambi i casi devi anche aggiungerle alle app installate nel tuo file settings.py in modo che Django ne sia a conoscenza) . Inoltre, mi capita spesso di incontrare pacchetti (open source) che fanno quasi quello che voglio, ma non esattamente, o che sono progettati in modo tale che i dettagli che devono essere modificati per integrare l'app nel mio progetto siano hard-coded. In questi casi, spesso inserisco l'app direttamente nella cartella del mio progetto, dove posso apportare le modifiche necessarie e accedervi come se fosse una delle mie altre app. In questo caso il pacchetto è, ovviamente, limitato a quel particolare progetto Django - non viene mai installato da Python e non viene creato alcun uovo.

La speranza che chiarisce un po 'le cose.

Problemi correlati