framework web compatible avec python 3.1 et py-postgresql
-
07-07-2019 - |
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?
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