Вопрос

Я начал изучать 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, но я не понимаю, почему он не должен работать.

Надеюсь, это поможет, Алан

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top