Я изучаю python уже некоторое время. Начав это «изучение python», я решил изучить последнюю и самую лучшую версию 3.1 python. Сейчас я сожалею об этом решении, потому что хотел попробовать свои силы в некоторых фреймворках веб-разработки Python, и похоже, что многие из них еще не поддерживают 3.1, и похоже, что им могут потребоваться годы, чтобы поддерживать новую версию Python, особенно Django и TurboGears. Это действительно разочаровывает. Поэтому, пользователи SO, можете ли вы порекомендовать мне веб-фреймворк, который работает на 3.1 и поддерживает некоторые современные (думаю, я никогда не узнаю ;-)) функции веб-фреймворка, такие как MVC/ORM/URL-маршрутизация/кэширование и т. д. .
Фреймворк веб-разработки Python для пользователя Python 3.1
Ответы (5)
Python 2.6 и Python 3.1 на самом деле не так уж сильно отличаются, я просто предлагаю вам изучить оба, тем более что обе ветви Python будут сосуществовать некоторое время... так что лучше просто изучить небольшие различия. В документе «Что нового в Python 3.0" объясняется большая часть разница между 2.6 и 3.0.
Как насчет того, чтобы попробовать Python2.7? Многие функции Python 3.x недавно был перенесен на 2.7, например OrderedDict, более быстрые модули ввода-вывода, понимание наборов, понимание dict и т. д.
По моему опыту, Python 2.7 работает без проблем с версией магистрали django 1.2.
На мой взгляд, изучение нового фреймворка займет больше времени, чем переход с Python2.x на Python3.x. Поэтому выберите один фреймворк и просто продолжайте использовать python 2.x и переключитесь на 3.x, когда придет время.
Как и другие, я предлагаю вам начать с Python 2.6.x — Python 2.7 будет выпущен этим летом, хотя вы можете получить альфа- или бета-версию уже сегодня.
Хотя Python 3.x обратно несовместим с 2.x, синтаксис Python не будет неузнаваем... почти все очень похоже на 2.x, но легко сломать код, когда print
strong> превращается из инструкции в функцию. Так что пока не беспокойтесь о Python 3. Как уже упоминалось, вы можете сразу начать работу с множеством веб-фреймворков, которые работают в Python 2.x.
Кроме того, только из-за нумерации НЕ обманывайте себя, думая, что Python 2 устарел в любом случае, и вы не можете последовательно следовать временной шкале. Другими словами, Python 2.7 будет новее, чем Python 3.0 и 3.1. (3.2 не будет выпущен до конца этого года.) Опять же, Python 2 НЕ был EOL'd — и 2.x, и 3.x активно разрабатываются.
Промышленный мир по-прежнему работает на Python 2.x; появление 3.x является напоминанием о том, что следующее поколение уже здесь, и это время, когда вся низкоуровневая инфраструктура и фреймворки должны начать свою работу по переносу, чтобы мы все в конечном итоге мигрировали.
Если вы хотите узнать больше о взаимоотношениях между Python 2 и Python 3, а также об изменениях/различиях между ними, а также о сроках и миграции, вы можете ознакомиться с этой онлайн-статьей, которую я написал ранее в этом году:
"Python 3: эволюция языка программирования"
http://www.informit.com/articles/article.aspx?p=1328795
Я также выступил с докладом на эту же тему на PyCon 2010 в феврале. Вы можете получить доступ к видео и предварительному просмотру слайда здесь:
http://us.pycon.org/2010/conference/schedule/event/29/
CherryPy 3.2 (над которым все еще ведется работа) будет работать на Python 3.x.
Bottle также может работать на Python 3.x после использования на нем 2to3. Легко сделать, и это работает. Тем не менее, Bottle не является «полным фреймворком», но им легко пользоваться.
Редактировать:
Я использовал Bottle в Python 3.1, а точнее Python 3.1 без стека, для игры, над которой я медленно работаю. Но на работе я просто использую Python 2.6. И скоро я буду использовать Webpy.
Сайт, над которым я работаю, написан на PHP, но когда мне нужно добавить новую функцию, которую я могу легко отделить от всего PHP-кода, я сделаю это на python. Несмотря на то, что я работаю с PHP почти каждый день и использую Python всего несколько раз в месяц, я все равно могу делать вещи быстрее на Python, чем на PHP :)
На самом деле есть (есть) порт Django для Py3k.
http://bitbucket.org/loewis/django-3k/
Я также хорошо помню, как читал ветку об университетском проекте по портированию Django на py3k в списке рассылки django-developers, но в данный момент я не могу найти эту ветку.
ИЗМЕНИТЬ Вот оно:
https://bitbucket.org/fiji/django-3k/
Проект возглавляют студенты Университета Торонто. :-)
ЗАВЕРШИТЬ ИЗМЕНЕНИЕ
Запрос чего-то вроде «Django py3k port» дает некоторые полезные результаты.
Также посмотрите на эти URL:
- http://wiki.python.org/moin/PortingDjangoTo3k
- http://groups.google.com/group/django-developers/browse_thread/thread/bf9d8808ee5aadb4/ccceb8901addceff?lnk=gst&q=django++port+py3k#ccceb8901addceff