Come usare Python come linguaggio server da una prospettiva PHP


11

Conosco solo la programmazione lato server con PHP. Per me, scrivo qualcosa index.phpe chiamo http://localhost/index.phpe vedo i risultati dello script PHP. Sto usando CakePHP e capisco che c'è qualcosa che puoi fare con la riscrittura degli URL, ma nella mia mente c'è questa relazione uno a uno tra URL e file PHP sul server.

Ora faccio molto con Python, ma solo utilites da riga di comando. Vorrei usare Python invece di PHP per il mio prossimo progetto. Finora, mi è stato detto mod_pythonche devo usare un framework come Pylons o Twisted o persino Django per ottenere qualsiasi output. Altri hanno detto che devo solo print()un'intestazione HTTP e quindi lo script uscirà come se fossi usato con PHP.

Vorrei scrivere qualcosa che fondamentalmente prende solo un elenco di directory e lo rende carino, in modo da poter accedere a un mucchio di file PDF da un browser mobile. So come farlo con PHP, so come creare uno script Python che genererebbe l'HTML. Semplicemente non so come eseguire quello script quando apro http://localhost/pdfcentral/.

Come dovrei configurare il mio server? Funziona su Ubuntu 10.04.


Ci sono molte varianti che puoi prendere, ma il modo più semplice sarebbe quello di mettere lo script Python nella tua cgi-bindirectory in modo che il server sappia eseguirlo e facoltativamente fare un reindirizzamento di un file PHP su di esso se desideri usare un percorso diverso. Per quanto riguarda lo script Python in sé è possibile seguire questa procedura: forrestbao.blogspot.com/2009/08/...
ionFish

Risposte:


9

mod_pythonnon viene più sviluppato attivamente. Mentre Apache dice che ciò non significa che il progetto sia morto -

Attualmente mod_python non è in fase di sviluppo attivo. Ciò non significa che sia "morto" come alcune persone hanno affermato. Significa che il codice e il progetto sono abbastanza maturi quando è necessario pochissimo per mantenerlo.

Tuttavia, si suggerisce di utilizzare invece mod_wsgi . Cioè se vuoi costruire tutto da zero. Cosa che suggerisco, non dovresti, a meno che tu non stia usando questo come esercizio di apprendimento.

Sarebbe meglio usare un framework web per fare il lavoro pesante - gestione di routing, richieste e simili

Un elenco completo dei framework Web Python è disponibile qui , ma qui ce ne sono alcuni che sono popolari:

  • Django - È considerato l'equivalente in Python di Ruby on Rails ed è piuttosto pesante, quindi non sarebbe adatto a ciò di cui hai bisogno.
  • Pallone - È un microframework. Cioè, è piccolo, non ti ostacola ed è ideale per progetti più piccoli che non richiedono molte batterie incluse.
  • Piramide - È costruito dallo stesso gruppo di persone che ha costruito i Piloni, il che non è defunto. È da qualche parte tra Flask e Django - può essere usato come sostituto per entrambi.
  • Bottle - Questa è un'altra microframe ed è ancora più minimale di Flask. È solo un file e non ha dipendenze (se si utilizza il motore di template incorporato) diverso dalla libreria standard, quindi sarebbe perfetto per quello che vuoi.
  • Web.py - Una volta alimentato Reddit (che è stato riscritto con nuovi strumenti dopo essere stato acquisito).
  • webapp2 : è il framework standard per Google App Engine (anche se è possibile utilizzare altri framework lì).

Di questi, consiglierei Flask, visto che l'ho usato e non ho lamentele. Ha anche molte estensioni che renderebbero la vita molto più semplice se desideri più funzionalità nel tuo sito.

Inoltre, avresti bisogno di un motore modello - per assemblare il tuo html. Jinja2 , costruito dagli stessi ragazzi che producono Flask, è abbastanza usato. Ma provenendo dallo phpsviluppo web, potresti trovare l'utilizzo di Mako più naturale, che è anche abbastanza popolare.

Ecco una domanda più completa sullo sviluppo Web di Python - Domande frequenti su Python : Webdev .


1
Ho un piccolo progetto Flask ora in esecuzione con FastCGI e lighttpd su una macchina di prova, dovrebbe funzionare anche sul server. Grazie mille!
Martin Ueding,

1

Ho trovato la domanda un po 'confusa e se ho ragione suppongo che il tuo obiettivo principale sia quello di servire i file sul tuo cellulare usando uno stile carino?

Se questo è vero, non dovresti aver bisogno di fare così tanti cicli per impostare qualcosa.

Apache2 ti consente di modificare la directory principale dell'elenco dei file in modo da poterlo modellare praticamente come vuoi.

Esistono anche molti temi principali disponibili online, basta cercare Google per l'elenco di elenchi di temi per Apache2, rendendolo reattivo non sarebbe difficile.

Ecco alcune informazioni su come modificare l'aspetto predefinito di Apache

Ed ecco alcuni modelli pronti per il check-out, ce ne sono molti altri ....

Repos Style

Recurser

Indici


Questo sembra risolvere abbastanza bene il problema iniziale. Pensavo di poterlo utilizzare come primo progetto per passare da PHP a Python. Se il progetto Python si blocca, darò un'occhiata a questo. Grazie!
Martin Ueding,

Il vostro benvenuto;)
Simon Hayter
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.