framework web compatibile con python 3.1 e py-postgresql
-
07-07-2019 - |
Domanda
Ho iniziato ad imparare Python scrivendo una piccola applicazione usando Python 3.1 e py-postgresql. Ora voglio trasformarlo in un'applicazione Web.
Ma sembra che la maggior parte dei framework come web-py, django, zope siano ancora basati su Python 2.x. Sfortunatamente py-postgresql non è compatibile con Python 2.x.
Devo riscrivere tutte le mie lezioni e sostituire py-postgresql con qualcosa supportato da web-py ecc., oppure esiste un framework compatibile con Python 3.1?
O forse py-postgresql è compatibile con 2.x ma non l'ho capito?
Soluzione
Aggiornamento: questa risposta non è aggiornata nel 2011.
A meno che tu non sia interessato a tracciare una nuova traccia mentre cerchi di imparare Python, ti consiglio di convertire il tuo progetto in Python 2.x. Spero che il tuo codice non usi troppe funzioni py-postgresql
non presenti nell'interfaccia API DB ampiamente supportata.
Dovresti guardare psycopg2
per un'interfaccia compatibile con DB-API Python 2.x o se vuoi andare di livello superiore SQLAlchemy
che nella versione svn può usare psycopg2
o py-postgresql
in modo intercambiabile.
Potresti anche essere interessato a 3to2 che converte automaticamente Python 3.x codice al codice Python 2.x quando possibile.
Duplicato di # 373945 Quali framework di sviluppo web supportano Python 3?
Altri suggerimenti
Ho appena scoperto WSGI: un'app compatibile con WSGI può anche essere scritta in Python 3.1. Il codice seguente funziona perfettamente in Python 3.1:
def webapp(environment, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello, World!']
if __name__ == '__main__':
from wsgiref import simple_server
simple_server.make_server('', 8080, webapp).serve_forever()
Il sito Web WSGI ha molti suggerimenti per i framework. Il Bottle framework rivendica " Bottle funziona con Python 2.5+ e 3.x (usando 2to3) " quindi ci proverò.
Ecco una versione semplificata del server WSGI di tornado implementata in python 3.
http://code.activestate.com/recipes/576906/
probabilmente ha alcuni bug, ma può iniziare
Anche se non è ancora stato ufficialmente rilasciato, attualmente sto 'giocando' con CherryPy 3.2.0rc1 con Python 3.1.1 e non ho ancora avuto problemi. Non l'ho usato con py-postgresql, ma non vedo perché non dovrebbe funzionare.
Spero che questo aiuti, Alan