веб-фреймворк, совместимый с python 3.1 и py-postgresql
-
07-07-2019 - |
Вопрос
Я начал изучать Python, написав небольшое приложение с использованием Python 3.1 и py-postgresql. Теперь я хочу превратить его в веб-приложение.
Но похоже, что большинство фреймворков, таких как web-py, django, zope, все еще основаны на Python 2.x. К сожалению, py-postgresql несовместим с Python 2.x.
Нужно ли переписывать все мои классы и заменять py-postgresql на что-то, поддерживаемое web-py и т. д., или есть ли фреймворк, совместимый с Python 3.1?
Или, может быть, py-postgresql совместим с 2.x, но я этого не понял?
Решение
Обновление: этот ответ устарел в 2011 году.
Если вы не заинтересованы в том, чтобы проложить новый путь, пытаясь вообще изучить Python, я бы порекомендовал преобразовать ваш проект в Python 2.x. Надеемся, что ваш код не использует слишком много функций py-postgresql
, которых нет в широко поддерживаемом интерфейсе DB-API.
Вам следует поискать в psycopg2
интерфейс, совместимый с DB-API Python 2.x, или если вы хотите перейти на более высокий уровень SQLAlchemy
, который в выпуске svn может использовать psycopg2
или py-postgresql
взаимозаменяемо.
Вас также может заинтересовать 3to2 , который автоматически конвертирует Python 3.x код в код Python 2.x, когда это возможно.
Дубликат # 373945 Какие платформы веб-разработки поддерживают Python 3? р>
Другие советы
Я только что узнал о WSGI: совместимое с WSGI приложение также может быть написано на Python 3.1. Следующий код прекрасно работает в 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()
На сайте WSGI есть много ссылок на фреймворки. Фреймворк бутылки утверждает, что "Бутылка работает на Python 2.5+ и 3.x (с использованием 2to3)" " так что я попробую.
Вот упрощенная версия WSGI-сервера торнадо, реализованная в python 3.
http://code.activestate.com/recipes/576906/ р>
возможно, есть ошибки, но вы можете начать
Несмотря на то, что он официально еще не выпущен, в настоящее время я «играюсь» с CherryPy 3.2.0rc1 с Python 3.1.1 и у меня еще не было проблем. Я не использовал его с py-postgresql, но я не понимаю, почему он не должен работать.
Надеюсь, это поможет, Алан