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

Всем привет. Хочу начать писать скрипты на питоне, как это делал на 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"]
;)

Ок, здесь передается хедер. Я понимаю, что веб в питоне уже работает с оболочкой (как фреймворк), но хочу иметь больше знаний. И почему сервер каждый раз перезагружать нужно?
  • Вопрос задан
  • 11608 просмотров
Решения вопроса 2
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
Ответ написан
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Окей, берём nginx, включаем cgi, и накатываем like this. Вот вам и PHP-style на питоне. Вместо echo используем print.

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

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

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

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

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

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

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