Domanda

Sto programmando il porting di un'applicazione PHP su Python. L'applicazione riguarda principalmente la raccolta e l'elaborazione dei dati. L'applicazione principale viene eseguita come applicazione da riga di comando autonoma. Esiste un'interfaccia web per l'applicazione che è fondamentalmente un'interfaccia di reportistica molto leggera.

Non ho usato un framework nella versione PHP, ma essendo nuovo a Python, mi chiedo se sarebbe vantaggioso usare qualcosa come Django o almeno Genshi. L'avvertenza è che non desidero che la mia distribuzione dell'applicazione venga sommersa dalle parti del framework che dovrei distribuire con l'applicazione.

Usare solo l'importazione cgi in Python è il modo migliore per andare in questa circostanza? Tenderei a pensare che un framework sia troppo sovraccarico, ma forse non sto pensando molto in un "pitone" modo per loro. Quali suggerimenti hai in questo scenario?

È stato utile?

Soluzione

La riga di comando Python, IMO, viene sicuramente prima. Fallo funzionare, poiché questo è il nocciolo di ciò che stai facendo.

Il problema è che l'utilizzo dell'ORM di un framework web da un'applicazione a riga di comando non è ovvio. Django fornisce istruzioni specifiche per l'utilizzo del proprio ORM da un'app della riga di comando. Inizialmente sono fastidiosi, ma penso che a lungo andare possano salvare la vita. Lo uso pesantemente per enormi caricamenti di file forniti dai clienti.

Non usare CGI nudo. Non è impossibile, ma troppe cose possono andare storte e sono state tutte risolte dai framework. Perché reinventare qualcosa? Usa semplicemente il codice di qualcun altro.

I quadri coinvolgono l'apprendimento, ma nessun vero "overhead". Non sono lenti. Sono codici che non devi scrivere o eseguire il debug.

  1. Impara un po 'di Python.

  2. Fai il Django tutorial.

  3. Inizia a creare un'app Web.

    a. Inizia un progetto Django. Crea una piccola applicazione in quel progetto.

    b. Costruisci il tuo nuovo modello usando Django ORM. Crea un test unitario Django per il modello. Assicurati che funzioni. Sarai in grado di utilizzare le pagine di amministrazione predefinite e di giocare molto. Basta non creare ancora il intero sito web.

  4. Fai funzionare la tua app da riga di comando usando Django ORM. In sostanza, devi perfezionare il file delle impostazioni affinché questa app funzioni correttamente. Vedi la sezione settings / configuration .

  5. Dopo aver eseguito la riga di comando e l'amministratore predefinito in esecuzione, puoi terminare l'app Web.

Ecco la regola d'oro dei framework: È il codice che non devi scrivere, eseguire il debug o mantenere. Usali.

Altri suggerimenti

Potresti prendere in considerazione l'utilizzo di qualcosa come web.py che sarebbe facile da distribuire (poiché è piccolo) e sarebbe sii anche facile adattare i tuoi altri strumenti ad esso poiché non ti richiede di inviarti al framework così come fa Django.

Attenzione, tuttavia, non è il framework più amato nella community di Python, ma potrebbe essere la cosa giusta per te. Potresti anche dare un'occhiata a web2py , ma ne so di meno.

Dipende dalle dimensioni del progetto. Se avessi solo alcuni script php precedenti che chiamavano la tua applicazione autonoma, probabilmente sceglierei un'app cgi.

Se si utilizza per database, riscrittura di URL, templating, gestione utenti e simili, utilizzare una struttura è una buona idea.

E ovviamente, prima di portarlo, considera se ne vale la pena solo per cambiare la lingua o se ci sono specifiche funzionalità di Python che ti servono.

Buona fortuna!

Di recente ho portato un'app PHP su Python usando web.py . Man mano che i framework vanno, è estremamente leggero con dipendenze minime e tende a stare lontano dalla tua strada, quindi potrebbe essere il compromesso che stai cercando.

Tutto dipende dalla tua applicazione iniziale, perché con un'applicazione di grandi dimensioni i vantaggi di avere un framework completo che gestisce gli impianti idraulici tendono a superare gli svantaggi associati a dover trascinare tutto il codice del framework.

Django rende possibile creare rapidamente un sito Web, questo è certo. Non è necessario essere un maestro Python per usarlo, e dal momento che è molto pitonico nel suo design, e non c'è davvero alcuna "magia". continuando, ti aiuterà a imparare Python lungo la strada.

Inizia con gli esempi, controlla alcuni screencast django di TwiD e sarai sulla buona strada.

Inizia lentamente, modificando l'amministratore e giocando con esso tramite shell è il modo per iniziare. Una volta che hai un controllo sull'ORM e scopri come funzionano le cose, inizia a costruire le cose reali!

Il framework non causerà alcun problema di prestazioni, come ha detto S. Lott, è il codice che non è necessario mantenere, ed è il tipo migliore.

Scegli un framework. Elementi di base come la gestione delle sessioni sono un incubo se non ne usi uno perché Python non è specializzato in web come PHP.

Se pensi che django sia troppo, puoi provarne uno più leggero come il piccolo ma utile web.py.

Per amore di Pete, usa un framework! Ci sono letteralmente dozzine di quadri là fuori, dalla cherrypy al django all'albatro a ... beh ... lo chiami. In effetti, l'enorme numero di framework Web è ciò che le persone indicano quando si lamentano della popolarità di Rails.

La comunità di sviluppo web di Python è divisa senza una sola voce. Ma questo è un altro argomento complessivamente! Il punto è che ci sono " web toolkit " (ad es. albatro) che sono abbastanza leggeri ma abbastanza potenti da farti passare la giornata (ad es. la verifica automatica di un bot non ha fatto un falso invio di un modulo, o aiuta a mantenere pulito MVC).

Se vuoi qualcosa che non sia " troppo framework " guarda qui:

http://wiki.python.org/moin/WebFrameworks

Guarda sotto " Framework di base che forniscono modelli " ;. Sono tutti leggeri e fanno tutto il "non reinventare la ruota" roba senza forzare un camion Mac su di te.

Dipende dal modo in cui distribuirai la tua applicazione.
Se verrà utilizzato solo internamente, scegli django. È una gioia lavorare con esso. Tuttavia, django non è all'altezza del compito di distribuzione; le applicazioni django sono un problema da configurare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top