2009-05-21 10 views
17

Ho lavorato su Python, ma era tutto per applicazioni autonome. Sono curioso di sapere se qualche propaggine di Python supporta lo sviluppo web?Utilizzo di python per lo sviluppo di applicazioni Web

Qualcuno potrebbe anche suggerire un buon tutorial o un sito web da dove posso raccogliere alcune delle basi dello sviluppo web usando python?

+3

Se sento le parole DJango o TurboGears o qualsiasi altra cosa ... sto per ... fare qualcosa di pazzo? –

+5

@Aiden ... quindi consiglierei di evitare qualsiasi discussione sulle web python, perché * non * parlare dei principali framework nel contesto dello sviluppo web è "qualcosa di pazzo". –

+6

@ Aaron, il commento era in umorismo. Ne ho un po 'di scorta se lo vuoi. –

risposta

21

Ora che tutti hanno detto Django, posso aggiungere i miei due centesimi: direi che potresti imparare di più osservando prima i diversi componenti, prima di utilizzare Django. Per lo sviluppo web con Python, si desidera spesso 3 componenti:

  1. Qualcosa che si prende cura delle cose HTTP (ad esempio CherryPy)

  2. Un linguaggio di templating per creare le tue pagine web. Mako è molto pythonic e works con Cherrpy.

  3. Se si ricevono i dati da un database , un ORM risulta utile. SQLAlchemy sarebbe un example.

Tutti i link sopra hanno buoni tutorial. Per molti casi d'uso del mondo reale, Django sarà una soluzione migliore di un tale stack in quanto integra perfettamente questa funzionalità (e altro). E se hai bisogno di un CMS, Django è la soluzione migliore per Zope. Tuttavia, per avere una buona comprensione di ciò che sta accadendo, una serie di programmi liberamente accoppiati potrebbe essere migliore. Django nasconde molti dettagli.

+1

+1 SQLAlchemy è molto interessante (tuttavia, django + etc ha il vantaggio di scegliere già il dispatcher, l'ORM, il linguaggio del modello in modo che non sia necessario). –

+0

@Aaron: totalmente, d'accordo. Risposta modificata per rendere più chiaro questo vantaggio di Django – stephan

0

Ricerca Django.

0

Python può essere utilizzato per lo sviluppo Web, ma non esiste un'estensione di linguaggio speciale o qualcosa nel linguaggio che gestirà tutta la generazione di HTML o che funzioni come PHP.

È praticamente eseguito attraverso una sorta di interprete su un server web (CGI, mod_python, ecc.).

Si consiglia di esaminare Python Web Application Frameworks o come scrivere Python CGI scripts.

0

Ci sono quite a few framework per Python, ma l'unico che ho usato è Django e mi piace molto.

Se avete un paio d'ore, fare la tutorial, te lo prometto, vi piacerà :)

4

modificato 3 anni dopo: Non usare mod_python, uso mod_wsgi. Flask e Werkzeug sono anche buone strutture. È necessario sapere cosa sta succedendo, ma non è un requisito. Sarebbe stupido.

Non cercare Django finché non hai una buona conoscenza di ciò che Django sta facendo a tuo nome. per te. Scrivi alcune app di base usando mod_python e il suo oggetto di richiesta. Ho appena iniziato a imparare Python per lo sviluppo web usando mod_python ed è stato fantastico.

mod_python utilizza anche un dispatcher in site-packages/mod_python/publisher.py. Avere un ganders attraverso questo per vedere come le richieste possono essere gestite in un modo semplice-ish.

Potrebbe essere necessario aggiungere un po 'di configurazione al file di configurazione di Apache per ottenere mod_python attivo e funzionante, ma il sito mod_python lo spiega bene.

<Directory /path/to/python/files> 
    AddHandler mod_python .py 
    PythonHandler mod_python.publisher 
    PythonDebug On 
</Directory> 

E sei via!

uso (come ad esempio stupidamente base):

def foo(req): 
    req.write("Hello World") 

in /path/to/python/files/bar.py assumendo /path/to è il vostro principale del sito.

E allora si può fare

http://www.mysite.com/python/files/bar/foo 

di vedere "Ciao Mondo".Inoltre, qualcosa che mi sgambetto è il dispatcher utilizza un metodo zoppo per capire il tipo di contenuto, in modo da forzare l'uso HTML:

req.content_type = 'text/html' 

Good Luck

Dopo avere una buona idea di come Python interagisce con mod_python e Apache, quindi usa un framework che fa tutte le cose noiose per te. Fino a voi però, solo la mia raccomandazione

+0

Se insisti a suggerire che le persone facciano il proprio, dovresti almeno suggerire che usano WSGI e non mod_python. WSGI è lo standard per scrivere applicazioni web Python e non ti blocca sull'API di un server web specifico (come potrebbe essere quel server web). Inoltre, scoprendo parte del dolore di scrivere una webapp da zero, WSGI lascia la porta aperta per riutilizzare altri componenti WSGI. –

+3

Dato che l'OP è utilizzato per lo sviluppo standalone in Python e ha richiesto "le basi dello sviluppo web usando python", questo sembrava il punto di partenza appropriato, essendo partito da me e trovandolo una base su cui costruire. –

0

Come altri hanno già detto, uno dei più importanti "rametti" di Python come li chiameresti sarebbe Django. Si tratta di un framework piuttosto potente che consente di creare applicazioni Web in modo rapido e sicuro. Il primo posto in cui guardare sarebbe their overview che fornisce alcune informazioni su ciò che Django fa come framework.

Passando attraverso their tutorial mi ha insegnato molto sul modello di progettazione prominente Model-View-Controler e su come può essere utilizzato in un contesto di sviluppo web. L'ho trovato un ottimo modo per iniziare a scrivere un'applicazione che ha funzionato e imparato migliorandola.

3

Se davvero non vuoi approfondire le strutture - e dovresti, raccomando vivamente Django o Pylons - c'è ancora bisogno di percorrere la strada della CGI. Questa è una tecnologia totalmente obsoleta, per non dire lenta e inefficiente.

è un modo standard di creare applicazioni Web Python e si chiama WSGI. Se si desidera eseguire il rollover della propria app Web da zero, questa è assolutamente la strada da percorrere.

Detto questo, se sei appena agli inizi, dovresti davvero andare con uno dei quadri.

1

Ci sono un paio di scelte per lo sviluppo web. Dalla mia esperienza, la tua scelta dipenderà nuovamente dalla tua applicazione.Ho utilizzato django e web.py in produzione e sto per distribuire un'applicazione basata su pylons.

Django nasconde molte scelte (viene fornito con ORM e modelli). La documentazione è ampia e ben scritta. Ci sono molte app riutilizzabili disponibili per django, ma è probabile che investirai un po 'di tempo per integrarle senza problemi. Una cosa, mentioned on djangocon 08 era il fatto, che ci sono cose interessanti in django, che non può essere facilmente accessibile da in progetti non-django.

web.py mi ha impressionato per la sua semplice semplicità. Prima di rendermene conto, scrissi una piccola app (78 lines quasi-wiki).

pylons si sente come nel mezzo di entrambi. Posso usare sqlalchemy e jinja, tutto sommato una piacevole esperienza per l'inizio.

Problemi correlati