2012-04-02 10 views
7

Vorrei sapere se esiste un modo per creare pagine Web senza un framework enorme in python.Python: come creare semplici pagine web senza un enorme framework?

Penso a qualcosa come PHP/Apache, che viene proprio come un linguaggio e non con un sovraccarico (ma non mi piace PHP ...). In PHP non c'è ORM, nessun template engine, ecc. Ma è molto semplice stampare semplicemente un Hello World nel browser.

Conosco Django e mi piace molto, ma è un po 'troppo grande per portali web semplici (5-10 pagine).

Mi piace molto qualcosa di semplice, senza installare troppo.

+3

Cosa ti aspetti che il framework faccia? Hai solo detto ciò che si suppone * non * di fare. Se non dovrebbe fare assolutamente nulla, che ne dici di scrivere semplicemente pagine HTML con un buon editor? –

+0

Lo stesso che fa PHP, ottenendo valori POST/GET, elaborazione, echo'ing. –

+1

Per favore aggiorna la tua domanda e cerca di essere il più specifico possibile. Altrimenti, questa domanda è "postare il tuo framework web leggero Python preferito", che non è adatto per SO. –

risposta

3

Hai cercato Flask?

È una struttura molto più minimalista e molto facile da configurare e iniziare.

+0

Bottle è una struttura minimalista simile che mi piace usare: http://bottlepy.org/docs/dev/ –

+0

Sì, conosco la bottiglia, credo che anche la fiaschetta ne abbia tratto origine. – pcalcao

+0

sì! Questo è tutto! Grazie. Questo è esattamente quello che ho cercato. Semplice. –

0

mod_python forse?

+0

Come fa mod_python a farlo? Spiegare cosa è e fornire un esempio, se possibile, in modo che le persone non debbano fare clic. – agf

+0

chiunque conosca Apache capirà almeno approssimativamente dal nome cosa fa mod_python. –

1

Non sono sicuro di cosa c'è che non va con le flatpages di django per i vostri scopi.

Un'altra alternativa sarebbe quella di sostituire il sistema di template django con qualcosa di più potente, come jinja, in modo da poter scrivere il tuo zollare tag e fare l'elaborazione lì, con una logica minima nella vista.

In pratica (visto che conosci già il Django), è probabile che sia più facile dell'uso di un microframework (che richiede più programmatori, in cambio di essere completamente libero da qualsiasi cosa).

0

Vorrei raccomandare CherryPy

import cherrypy 
class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 

cherrypy.quickstart(HelloWorld()) 
2

buon vecchio CGI è il modo più rapido per iniziare. Sulla maggior parte delle configurazioni, è sufficiente rilasciare uno script python in "cgi-bin" e renderlo eseguibile, non è necessario installare nulla. Google per "cgi python", ci sono molti tutorial, ad es. this one sembra abbastanza decente.

0

Certo, si può andare veramente magra con il percorso CGI o wsgiref. Tuttavia, ottieni quello per cui paghi, e preferisco Flask o WerkZeug per tutto il dolore che impediscono.

Da wsgiref python docs:

from wsgiref.simple_server import make_server 

def hello_world_app(environ, start_response): 
    status = '200 OK' # HTTP Status 
    headers = [('Content-type', 'text/plain')] # HTTP Headers 
    start_response(status, headers) 
    return ["Hello World"] 

httpd = make_server('', 8000, hello_world_app) 
print "Serving on port 8000..." 

# Serve until process is killed 
httpd.serve_forever() 
4

Ho usato Flask (e bottle.py) in passato, ma in questi giorni ho in realtà preferisco Pyramid, from the Pylons folks.

Pyramid è in grado di essere una struttura ampia e completa, è progettata per la flessibilità e non ha carenza di plug-in ed estensioni disponibili aggiungendo funzionalità aggiuntive, ma è anche in grado di eseguire piccoli progetti a file singolo; vedi this tutorial for an example.

Andare con Pyramid ti darà spazio per crescere se le tue esigenze si espandono nel tempo, pur mantenendo la possibilità di iniziare in piccolo.

+0

sì, la piramide sembra interessante, ma la fiaschetta è davvero la soluzione migliore per il mio 'problema', perché passerei a Django per cose più grandi. –

+0

@DavidHalter Questo funziona solo se sai in anticipo se il tuo progetto sarà una "cosa più grande". Se inizia piccolo e poi cresce organicamente, avere l'unica via di riscrittura completa è un po 'schifoso. (Inoltre, in qualità di ex-sviluppatore Django, sono un po 'incerto sul perché dovresti passare a qualcosa con un ORM terribilmente orribile [almeno rispetto a SQLAlchemy, lo standard con cui tutti gli altri dovrebbero essere misurati], un motore di templating dolorosamente lento, un meccanismo di routing dell'URL meno inseribile e così via ... ma è una conversazione completamente separata). –

+0

Oh, sembra che devo controllare anche Pyramids. Odio Django ORM per la sua inabillità nel gestire le chiavi composite. E il motore di template è davvero molto lento, hai ragione (è molto meglio con PyPy). Pyramid suona davvero bene. Devo fare un tentativo. –

0

Python funziona bene con CGI.

Questa è la cosa più semplice che puoi fare: ha solo bisogno di apache e di un ambiente Python funzionante, ed è la più vicina ad una configurazione php standard.

Ricorda che, quando si usa CGI, lo script python è responsabile dell'output degli header HTTP necessari (sys.stdout.write('Content-Type: text/html\n\n')), ma c'è un modulo CGI che fa parte della libreria standard python che aiuta molto a gestire le cose grezze (post/ottenere l'analisi degli argomenti, il recupero dell'intestazione, la generazione dell'intestazione).

Problemi correlati