2011-02-06 13 views
6

Sono stato contattato da un amico qualche giorno fa, che ha un'esperienza di programmazione molto limitata e che ha un progetto con cui ha chiesto aiuto.Caricamento file ed elaborazione utilizzando Python

In sostanza - questo è ciò che sta cercando di realizzare:

1.) Create a website that can accept text files as input. 
2.) Read said file and pass the parameters contained in the 
    file to a python script. 
3.) Output these results of the script on the same webpage upon completion. 

Sa una piccola quantità di Python (abbastanza per scrivere la sceneggiatura di elaborazione), ma non ha idea di dove andare da qui. Ho fatto un rapido esempio per lui usando una pagina ASP che leggeva in un file, e ho usato IronPython per passare i parametri in un file di script e produrre i risultati, che funzionavano esattamente come mi aspettavo.

Tuttavia, per lui speravo di guidarlo nella direzione giusta di sviluppare un'applicazione molto più semplice per eseguire questo e speravo di trovare qualche suggerimento o di ascoltare alcuni pensieri su approcci diversi. Immagino per la sua mancanza di esperienza, più semplice, meglio è.

Grazie ragazzi.

+0

forse questo ti aiuterà a ottenere sulla giusta strada: http://docs.djangoproject.com/en/dev/topics/http/file-uploads/?from=olddocs –

+0

La stessa web-app in vari framework: appengine, fiasco, web.py, juno, bottle, itty, django, ... https://github.com/agiliq/so-starving – jfs

risposta

6

Flask è semplice, estremamente potente e intuitivo. Lo preferisco a Django per progetti più piccoli, dato che Django usa way troppe cartelle (basta seguire il tutorial introduttivo). Ecco cosa intendo per semplice e intuitivo. Non posso spiegarlo a parole, ecco di uno script di esempio:

File:script.py

app = Flask(__name__) 
app.config.from_object(__name__) 

@app.route('/') 
def index(): 
    return render_template('index.html', message = 'Hello') 

if __name__ == '__main__': 
    app.run(host = '0.0.0.0') 

file:index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
    <title>Test</title> 
    </head> 

    <body> 
    {% if message != 'nope' %} 
    {{ message }} 
    {% endif %} 
    </body> 
</html> 

solo il mio pensiero, così buono fortuna.

+0

Grazie Blender - Questo era esattamente quello che stavamo cercando! :) –

+0

Nessun problema. La documentazione online è più o meno l'unico posto dove trovare qualcosa su Flask, ma probabilmente è l'unica cosa di cui hai bisogno: http://flask.pocoo.org/docs/ – Blender

+0

Heh, mentre stavo scrivendo il codice di esempio, Ho accidentalmente sovrascritto la mia intera applicazione della libreria di 500 righe salvando questo file. Per fortuna ho cancellato un Tarball della fonte in anticipo! – Blender

2

Forse si vede a Flask? http://flask.pocoo.org/ Struttura web molto semplice in Python per la creazione rapida di un piccolo sito web.

+0

Grazie gigimon :) –

0

Se il tuo amico vuole ottenere qualcosa insieme molto rapidamente e facilmente e non ha molta esperienza di programmazione, penso che la sua migliore scommessa sarebbe web2py. Non richiede installazione o configurazione, non ha dipendenze e include un server Web, un database relazionale e un ambiente di sviluppo integrato basato sul Web e un'interfaccia di amministrazione (demo).

È very easy to learn ed è stato progettato per ease of use and developer productivity. Si può fare molto con poco codice grazie all'app per scaffolding inclusa con molti comportamenti predefiniti. Se l'app diventa più complessa, web2py può gestirlo, in quanto è un framework full-stack ben integrato con molte funzionalità integrate, tra cui un livello di astrazione del database, gestione e convalida dei moduli, controllo degli accessi, servizi Web e facile Integrazione Ajax.

Se ha bisogno di aiuto per iniziare o ha qualche domanda, riceverà molto aiuto dal molto amichevole e reattivo mailing list.

Ecco il completo equivalente web2py di lavoro del di @ Blender Flask app (anche se questa versione aggiunge un bel layout predefinito con un menu così come il supporto all'internazionalizzazione di tradurre il 'Ciao' un messaggio):

File:default.py

def index(): 
    return dict(message=T('Hello')) 

File:index.html

{{extend 'layout.html' # optional}} 
{{if message != 'nope':}} 
{{=message}} 
{{pass}} 
Problemi correlati