Question

J'ai commencé à apprendre Python en écrivant une petite application utilisant Python 3.1 et py-postgresql. Maintenant, je veux le transformer en une application Web.

Mais il semble que la plupart des frameworks tels que web-py, django, zope sont toujours basés sur Python 2.x. Malheureusement, py-postgresql est incompatible avec Python 2.x.

Dois-je réécrire toutes mes classes et remplacer py-postgresql par quelque chose supporté par web-py, etc., ou existe-t-il un cadre compatible avec Python 3.1?

Ou peut-être que py-postgresql est compatible avec la version 2.x, mais je ne l'ai pas compris?

Était-ce utile?

La solution

Mise à jour: cette réponse est obsolète en 2011.

À moins que vous ne souhaitiez ouvrir une nouvelle piste tout en essayant d'apprendre Python, je vous recommande de convertir votre projet en Python 2.x. Espérons que votre code n'utilise pas trop de fonctionnalités py-postgresql introuvables dans l'interface DB-API largement prise en charge.

Vous devriez consulter psycopg2 pour une interface compatible Python 2.x DB-API ou pour accéder à un niveau supérieur SQLAlchemy qui peut, dans la version svn, utiliser psycopg2 ou py-postgresql de manière interchangeable.

Vous pourriez également être intéressé par 3to2 , qui convertit automatiquement Python 3.x code en code Python 2.x lorsque cela est possible.

Duplicate de # 373945 Quels cadres de développement Web prennent en charge Python 3?

Autres conseils

Je viens de découvrir WSGI: une application compatible WSGI peut également être écrite en Python 3.1. Le code suivant fonctionne très bien dans 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()

Le site Web de WSGI contient de nombreux pointeurs vers les frameworks. Le Framework de la bouteille déclare que "Bottle fonctionne avec Python 2.5+ et 3.x (avec 2to3)". donc je vais essayer.

Voici une version simplifiée du serveur WSGI de tornado implémentée dans python 3.

http://code.activestate.com/recipes/576906/

a probablement quelques bugs, mais peut vous aider à démarrer

Même si la version officielle n’est pas encore sortie, je «joue» actuellement avec CherryPy 3.2.0rc1 avec Python 3.1.1 et je n’ai pas encore eu de problèmes. Je ne l'ai pas utilisé avec py-postgresql, mais je ne vois pas pourquoi cela ne fonctionnerait pas.

J'espère que ça aide, Alan

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top