Питон. Как изучать?

Всем привет. Хочу начать писать скрипты на питоне, как это делал на PHP. Что для этого нужно? На данный момент знаю примитивно синтаксис, пару функций питона. Поставил связку nginx + uwsgi + python3. Запустил простой hello world. Собственно знаний очень не хватает, хочу выбрать курс. Какие книги читать? Русские желательно, чтобы детально было объяснено.

В Php все гораздо проще. Имею index.php и там делаю все что хочу, а в питоне для простого хелоу ворлда нужно городить
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
;)

Ок, здесь передается хедер. Я понимаю, что веб в питоне уже работает с оболочкой (как фреймворк), но хочу иметь больше знаний. И почему сервер каждый раз перезагружать нужно?
  • Вопрос задан
  • 11525 просмотров
Решения вопроса 4
Deus0x58
@Deus0x58
Среди русскоязычных материалов лучше Марка Лутца с его трилогией Изучаем Python и Программируем на Python (2 тома), пожалуй и не найти. Начните с 3-ей ветки, чтобы ни говорили приверженцы старой ,2.7, школы, все наиболее распространенные библиотеки медленно но верно переводятся на python 3. По-крайней мере, за год изучения и использования Python у меня ни разу не возникло проблем с поиском нужной либы для Py3. Все равно, все изменения, особенно в таком динамически развивающемся языке как Python, к лучшему, поэтому освоив 3-ю ветку можете считать, что уже умеете на 2-ой.
Для начала web-разработки посмотрите на простой, однофайловый фреймворк bottle. Затем рассмотрите Flask/Django, по-вкусу.
Начните решать задачи на www.checkio.org
PyPi - Глобальный индекс модулей https://pypi.python.org/pypi
Узнайте про pip и virtualenv.
Начните решать рутинные задачи на Python.
Развлекайтесь;)
Ответ написан
sim3x
@sim3x
И почему сервер каждый раз перезагружать нужно?

потому, что происходит компиляция py -> pyc. Для продакшена нет необходимости менять код часто. Но и для такого случая у uWSGI есть ключ.
В питоне раньше чем в пхп появились дев-сервера, которые позволяют про такое не вспоминать

В Php все гораздо проще. Имею index.php и там делаю все что хочу, а в питоне для простого хелоу ворлда нужно городить


попробуйте запустить пхп скрипт под uwsgi - увидите, что нет

Поставил связку nginx + uwsgi + python3

это связка для продакшена. В ней не хватает virtualenv + pip

На дев машинах все пользуются
# django
$ mkvirtualenv test-django
(test-django)$ pip install django
(test-django)$ django-admin startproject testdjango
(test-django)$ python manage.py runserver

# flask
$ mkvirtualenv test-flask
(test-flask)$ pip install Flask
(test-flask)$ echo 'from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()'>hello.py
(test-flask)$ python hello.py

# такой подход только-только входит в пхп

По поводу обучения
https://www.google.com/search?q=python+tutorial
About 13,200,000 results
Ответ написан
guessss_who
@guessss_who
Ради всего святого — не надо писать на Python как на PHP!

Для изучения основ языка рекомендую обзавестись книгами Лутца. Если интересует конкретно разработка под веб — очень хорошим вариантом будет освоение Django. На books.ru можно недорого приобрести PDF-ку книги на русском языке, + на djangoproject.com есть отличная документация и неплохой туториал.
Ответ написан
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Окей, берём nginx, включаем cgi, и накатываем like this. Вот вам и PHP-style на питоне. Вместо echo используем print.

Но, это не комильфо. Хотя, что забавно, python весьма юзабелен в таком виде, отсутствие логики и связности процессов (всё таки каждое обращение - загружается отдельный libpython.so) сводят на нет любые большие проекты.

Так что смотря что Вам больше нравиться. Хочется больше велосипедов? Flask Вам в руки. Хочется быстрого развёртывания? Привет, django. Ищете хардкора? BaseHTTPServer имеет почти всё, что нужно, а чего нет - можно и самим придумать. А если требуется надёжность, возможно имеет смысл взглянуть на руби-стек, ибо пусть django и мейнстрим, пусть он и не сильно новый, всё таки у RoR аудитория больше и сообщество посильнее, тем более что магии в ruby более чем достаточно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 8
@EagleAlex
Java
А я пошел на эксперимент: учу питон по официальной документации, пока получается)
Ответ написан
afiskon
@afiskon
Тупо берите задачу и решайте. Гуглите, смотрите по книжкам, спрашивайте на форумах. Через пол года посмотрите на свой код, офигейте и напишите заново, в этот раз лучше :) Список задач можно тут посмотреть например.
Ответ написан
@koriaf
Если интересна именно веб-разработка — начинайте сразу с какого-нибуь фреймворка, Django, например. Изучение можно начинать с документации на её сайте, там отличные примеры.

Если интересен сам язык, то проще запускать скрипты прямо из консоли и экспериментировать со структурой языка, а уже потом заниматься вебом.

Во времена моего изучения языка хорошей книжкой было Beginning Python — From Novice To Professional (2005).
Ответ написан
ixon
@ixon

Берешь питон и изучаешь. Учи-учи учи-учи рас-рас-рас рас-рас-рас рас-рас-рас.
Ответ написан
@Freeddi
а с примерами программ (в том числе на выполнение) есть? а то у Лутца сухая теория, как документация.
Ответ написан
@President42
Чтобы не городить то, что вам пришлось городить, используйте Django (или какой-либо другой веб-фреймворк, их немало).
Я бы посоветовал сделать так: изучить сначала основы Python, не касаясь веба, и дойти до основ ООП на Python. После этого поставить Django и копаться в нём уже.
Ответ написан
@kstyle
задачи здесь можно брать. и пройти надо теорию в рамках первого курса вуза - это для любого языка в принципе
Ответ написан
@Victor-Sproot
CoderNet
Например вот тут для начала литературы хватит с головой
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы