Сообщество - Программирование на python
26 постов 1 775 подписчиков
58

[Django] Уроки на примере реального web проекта

[Django] Уроки на примере реального web проекта Python, Джанго, Web

Всем доброго времени суток.

В течении двух недель наша компания планирует начать разработку крупного портала мониторинга движения транспорта, который будет связан с многими государственными сервисами и данными.

Разработка будет вестись на Django, я являюсь главным разработчиком.

Очень давно на Пикабу и всегда рад рассказать что-то новое сообществу.

Мне нужно знать интересна эта тема и стоит ли публиковать посты по этапам разработки приложения. Комментарий для минусов внутри.

32

Видеоуроки Python

Короче, есть чувак, зовут Баки Робертс, на ютубе у него целая серия обучалок по разным языкам программирования, включая и питон, есть ли смысл мне их перевести и озвучить, а потом выложить сюда? Объясняет он очень круто и постепенно, я с нуля начинал и мне довольно легко давались его обучалки. Вот ссылка на плейлист по питону:

https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6o...

20

Программирование на Python. Урок 4 - Срез Строки

Продолжаю озвучивать для своих подписчиков видеоуроки по Питону от Баки Робертса. Предыдущие уроки можно найти в сообществе или в моем плейлисте: https://www.youtube.com/playlist?list=PL_yQY54D7lQB7vIauf8ZB...

24

Стоит ли продолжать переводить уроки по Питону?

В общем, как недавно выяснилось, на ютубе уже есть озвученные ролики Баки Робертса по программированию на Python3, вот по этой ссылке можете посмотреть их:

https://www.youtube.com/channel/UChHyBDvI5AJmcPv36M6PUrQ/pla...

В комментария отпишитесь, стоит ли мне озвучивать дальше, даже учитывая, что этот материал уже переведен. Спасибо за внимание.

23

Программирование на Python. Урок - 5 - Списки

Моя озвучка 5-го урока по программированию на python3.4 от Баки Робертса.

Предыдущие уроки можете найти в этом сообществе: http://pikabu.ru/community/python или в моем профиле.

Вот ссылка на оригинальный плейлист: https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6o...

25

Hello world!

Я писал тут об одной мощной, простой, интересной библиотеке, которой пользуюсь чуть ли не каждый день, но вдруг осознал, что первый пост лучше сделать просто ознакомительным, для тех, кто совсем-совсем новичок. :)


Поэтому сегодня мы немного поговорим о том, что такое вообще python и попробуем завести его на своём компьютере.


Если ты уже программируешь на python, то этот пост ну прям явно не для тебя. :) Ты можешь просто не читать его вовсе, а лучше написать сюда свой, про что-нибудь интересное из твоего опыта! С преферансом и поэтессами, как полагается. ;)

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Итак, как сообщает нам достоверный источник (википедия), python (я произношу "пайтон", некоторые русскоязычные люди говорят "питон") — язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Иными словами, на нём можно быстро и писать код, и разбираться в том, что написал сосед.


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


Применяют ли его на практике?

Безусловно! Python — очень распространённый язык! С его помощью можно делать сайты, обрабатывать данные, работать с машинным обучением и много-много ещё всего интересного. Он используется многими крупными компаниями (например, в Google, чего далеко ходить). С его помощью можно делать как простенькие скрипты для повседневной жизни, так и всерьёз заниматься научной и коммерческой разработкой.


Заинтересовало? Тогда давай попробуем написать и запустить что-нибудь на Python! :)

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Важно понимать, что способов для этого — тьма! Ты можешь писать свою программу хоть в мощной среде разработки с подсветкой синтаксиса и прочими плюшками, хоть в обычном блокноте, хоть вообще в интернете (да и запускать там же). Думается, об этом будет отдельный пост. Сейчас же я просто покажу как можно исполнять команды в интерпретаторе python.


И сразу пара слов о последнем, потому что если ты это читаешь, то, быть может, и не знаешь что это такое.


Python — язык интерпретируемый. Говоря вкратце, это означает, что его инструкции выполняются (интерпретируются) одна за другой последовательно, без компилирования всего и сразу, как, например, в языке Си. Интерпретатор — это как раз-таки специальная программа, которая и занимается интерпретацией.


Чтобы пользоваться языком python, нужно скачать и установить его реализацию с официального сайта https://www.python.org/downloads/.


Я приведу пример на 3-ей серии языка python (3.5.1), поэтому рекомендую скачивать именно её. Для Windows это можно сделать напрямую по этой ссылке. При установке, не забудь поставить галочку на пункте Добавить в PATH, это упростит тебе жизнь в дальнейшем.

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Скачал и установил? Отлично! Давай запустим интерпретатор. Открой командную строку (вбей в Пуск cmd) и введи туда:

python

Интерпретатор запущен! Да, всё так просто! Если всё сделано правильно, то будет что-то вроде:

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Теперь исполним первую команду! Введи:

print('Hello world')

Результат:

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Да, она просто распечатала, то что в скобках, в кавычках на экран! Это выполнилась стандартная функция языка python — print(). Как видишь, здесь, в отличие от Си, например, для неё не нужно ничего присоединять, не нужно никак её обособлять (в этом конкретном случае), не нужно ничего ставить после неё.


Вообще говоря, интерпретатор выведет строку в кавычках и вовсе без print() в таком режиме, как и число (только числа нужно писать без кавычек), как и даже арифметические операции над числами и переменными, но я бы не советовал к этому привыкать, потому как если ты будешь запускать программу из файла, то подобное опускание print() вызовет не что иное, как ошибку.


Кстати, насчет арифметических операций. Ты можешь без зазрения совести совершать их прямо в функции print(). Попробуй, например, по порядку:

print(100 + 1)
print(42 / 7)
print(111111111 * 111111111)

На этом пока всё! Спасибо за внимание! Очень сложно писать первый пост в целом сообществе — не совсем понятен уровень читающих. Поэтому я решил посвятить его абсолютным новичкам. Надеюсь, не прогадал. :)


Спасибо за внимание!

Показать полностью 4
26

[Основы] Часть 1. Для грудничков.

Предполагается, что пост http://pikabu.ru/story/hello_world_4265035 уже прочитан или у вас любой дистрибутив linux.

Предполагается, что аудитория будет заинтересована, и если это будет так, я напишу ещё несколько постов о питоне, чтобы познакомиться с синтаксисом, стандартными структурами данных, некоторыми стандартными библиотеками, чтобы в дальнейшем перейти к разработке на Django.

Предполагается, что аудитория состоит не из овощеподобных амёб, а развитых людей, готовых применять свою черепную коробку не только для того, чтобы есть.


Для начала замануха. Можно много писать о том, какой питон крутой, что его используют для бигдаты, датасаенса, веб-разработки и всего остального. Но это всё сухие слова. Поэтому приведу пару примеров того, где питон используется в качестве основного языка.


Instagram - всеми любимый хостинг фотографий еды и ёбл тупых пёзд. Да, он написан на питоне. Мало того, за фреймворк взят Django, до которого мы доползём, если кроме меня будут желающие ползти. Да ещё и HTTP-сервер они взяли Gunicorn, до которого мы так же доползём. В качестве БД они используют PostgreSQL - мою любимую РСУБД и именно поэтому до неё мы тоже, возможно, доползём.


Reddit - сервис смехуёчков, думаю, все о нём так или иначе слышали. Он написан также на питоне, но на Pyramid фреймворке, а не Django. В качестве БД используются две базы: Cassandra и PostgreSQL. В качестве кэша используется memcached и фейсбуковский mcrouter. В качестве брокера сообщений используется RabbitMQ. Исходный код находится в общем доступе здесь https://github.com/reddit/reddit


exchange.livejournal.com - биржа блогеров ЖЖ, которая недавно открылась. Почему она здесь? Потому что я участвовал в её разработке. Она также написана на Django с базой PostgreSQL.


На этом замануха кончается и начинается моя нелюбимая часть - циклы, ветвления и переменные.

Все куски кода будут являть собой скриншоты Jupyter Notebook, во-первых, потому что мне в нём удобно писать, во-вторых, потому что нечего копировать чужой код.


Переменные

Питон - язык со строгой динамической типизацией. Что это значит?

- Если захочешь сложить число 5 со строкой '7' - тебя наругают. Это называется строгой типизацией. Никаких преведений к "более общему" типу.

- Если в переменной x хранилось число, это не значит, что ей нельзя присвоить строку. Это динамическая типизация. Тип переменной, разумеется, нигде указывать не нужно.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Приятной возможностью является параллельное присваивание. Обмен значениями также поддерживается.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Есть также множественное присваивание, которое я настоятельно не рекомендую использовать бездумно (это касается неплоских типов данных, о которых поговорим как-нибудь позже):

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

С переменными, вроде, пока всё.


Ветвления

В отличии от Си-подобного синтаксиса, у нас нет ни фигурных скобок для выделения блоков, ни скобок для выделения условного выражения (на самом деле, ничего не мешает обернуть условие в скобки). Блоки выделяются ТОЛЬКО отступами. Здесь нет никаких switch, есть только if, elif и else. Следующий пример, думаю, объяснит всё за меня:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

А теперь небольшой сюрприз. Несмотря на то, что язык имеет строгую типизацию, сравнения между некоторыми неодинаковыми типами данных (int, float, Decimal) поддерживаются. Например 5 == 5.0 вернёт True, несмотря на то, что 5 - это целое число, а 5.0 - с запятой. Но использование этого считается дурным тоном.


Циклы

Если вы до этого дня не знали слово "итератор" и писали только циклы по индексам, вроде такого for(int i=0; i<10; i++), то придётся привыкать.

Итак, в питоне цикл for проходит итератором по каждому элементу последовательности. Ему глубоко плевать, что внутри последовательности. Число, строка, чьи-то надежды и мечты.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Для обычных циклов по индексам существует генератор range. О генераторах тоже позже.


Функции

Функции в питоне объявляются двумя способами:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Однако, второй способ СТРОГО НАСТРОГО рекомендую использовать для определения обычных функций. Лямбда-функции (или безымянные функции) нужны только для того, чтобы передавать их аргументом в функции высшего порядка.

Тут, наверное, возникло сразу два вопроса:

Как можно передать функцию аргументом в другую функцию?

Что такое функция высшего порядка?


Т.к. питон - объектно-ориентированный, следовательно, всё в нём является объектом. И функция тоже. Аргументом в функцию может прийти любой объект, в т.ч. и функция:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

В данном примере много чего интересного:

1) После определения функции (def) можно ввести так называемый docstring, который описывает то, что делает функция. При этом, этот докстринг сохраняется в атрибут __doc__ объекта функции (что только лишний раз говорит о том, что функция - объект)

2) __name__ атрибут содержит имя объекта (функции или класса)

3) h в этом случае - функция высшего порядка. Функция высшего порядка - это функция, которая принимает или возвращает другую функцию. Это пригодится для декораторов, о которых также позже.


Функции можно присваивать другим переменным:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Но имя (__name__) останется прежним, т.к. фактически, f и same_func только лишь ссылаются на функцию.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Чёт, кажется, я уже далеко забрёл. В следующей части, если увижу интерес у аудитории, я расскажу о стандартных структурах данных (списки, кортежи, словари, множества) и о том, какие они охуенные и для чего используются.


P.S. Пост писался без подготовки, прямо в редактор постов на пикабу, обо всех недочётах пишите в комментах, закидывайте тапками и помидорами.

Показать полностью 9
20

Для начинающих изучать программирование(Python)

Следует отметить, что python-лучший выбор для новичка, желающего приступить к изучению программирования. Однако это тема не для одного поста. Да и изучение программирования должно быть построено не на одном лишь языке, а включать себя несколько составляющих предметов, но этот пост именно для тех, кто знает что хочет учить питон, но не знает какую именно литературу ему выбрать.

1.Майкл Доусон - Программируем на python

Для начинающих изучать программирование(Python) Python, Книги, Подбока, Программирование, Длиннопост

Начать стоит именно с этой книги. Без излишнего углубления в язык рассматриваются его основы. Весь материал подкреплен множеством примеров, в основном связанных с игровой тематикой. Глава строится так: в самом начале дается программа, подобную которой вы сможете написать по прочтении главы, ну а по ходу изучения сталкиваешься с рядом более простых программ, приводящих к пониманию основной. Это буквально наводняет книгу примерами, и дает необходимую практику новичкам. Ну и разумеется подталкивает к созданию своих собственных программ.

2.Марк Лутц - Изучаем Python 4-е издание
Для начинающих изучать программирование(Python) Python, Книги, Подбока, Программирование, Длиннопост

Отличная книга, но слишком подробная для новичка, читать ее стоит в связке с практикой. Нечто вроде: вы захотели написать программу, но вам не хватает более глубоких знаний что бы сделать ее удобней/короче/красивей и т.д.

3.Марк Саммерфилд - Программирование на Python 3

Для начинающих изучать программирование(Python) Python, Книги, Подбока, Программирование, Длиннопост

Присутствует та же динамика что и в первой книге, нет лишней информации, однако она сложнее, все не так разжевано как у Доусона. Стоит отметить что после прочтения Доусона, освоение данной книги особо труда не составит.

4.Марк Лутц - Программирование на Python

Для начинающих изучать программирование(Python) Python, Книги, Подбока, Программирование, Длиннопост

Книга учит применять знания полученный в "Изучаем Python 4-е издание", однако так же перегружена лишней для новичков информацией, воспринять которую будет куда проще после Доусона и Саммерфилда. Эта книга-некий финиш в начальном изучении языка. Освоив ее вы сможете перейти куда к более углубленным работам.

Надеюсь кому то поможет эта подборка. Приятного чтения и удачи в обучении.

Показать полностью 3
32

Нужен кому Python Junior даром?

Всем привет. Самому кажется такой пост очень дурацким, но особо больше спросить не где.

Ситуация следующая, я работаю инженером радионавигации,радиолокации и связи. Работа у меня вахтовым методом, по этому я месяц на вахте месяц дома. Время свободное имею. В этом году закончил универ , специальность информатика и вычислительная техника. Все 5 лет что то программировал, но всё ограничивалось учебными заданиями или какой то автоматизацией для себя или по работе. Писал на многих языках чаще всего, на Java так как он кроссплатформенный и легко было GUI делать.  Сейчас изучаю python и django. Из навыков js,html,css,git,bootstrap,SQL - но у всего чисто студенческий уровень. Мне кажется что бы уровень свой поднять , нужно поработать с какими то реальными задачами. Поэтому спрошу еще раз, нужен ли кому нибудь Python раб в проект?

24

Программирование на Python. 1-й видеоурок. Установка оболочки

В прошлом посте http://pikabu.ru/story/videouroki_python_4287213

я спрашивал стоит ли мне переводить и озвучивать ролики Баки Роберста по Питону. На меня подписалось 4 человека да и пост не был заминусован, поэтому выкладываю 1-й урок, если не закидаете тапками, буду озвучивать дальше.

Официальный сайт, где можно скачать Python: https://www.python.org/

10

Не видит камеру в PyCharm(openCV)

Не видит камеру в PyCharm(openCV) Python, OpenCV, Ошибка, Помощь, Ubuntu
Не видит камеру в PyCharm(openCV) Python, OpenCV, Ошибка, Помощь, Ubuntu
Не видит камеру в PyCharm(openCV) Python, OpenCV, Ошибка, Помощь, Ubuntu
Не видит камеру в PyCharm(openCV) Python, OpenCV, Ошибка, Помощь, Ubuntu

Пробовал сделать пару hello world приложений но столкнулся с проблемой видимости камеры, с изображениями cv2 работает нормально.

Коменты для минусов оставлю внутри

Буду благодарен за любую информацию!)

13

Истории

Доброго дня всем. Я очень надеюсь, что ни сообщество, ни админ @rissy не будут против этого поста.

Мне сейчас очень нужна ваша помощь, тех, кто определился, тех, кто уже прошёл этот путь и работают программистами.

Расскажите, пожалуйста, истории вашего становления. Я очень хочу программировать,  именно работать в этой сфере, но совершенно не представляю, как приткнуться. Образование получено в абсолютно противоположной сфере, и сейчас нет возможности поступать и обучаться очно. Мне уже 30, но я готов вложить силы, время для переквалификации, только нужен вектор.

Python, Delphi, C++ - уровень чуть выше "Hello, World!".

И вот стоит ли изначально кроптеть над конкретным языком, скажем, прорешивая примеры из книг, или есть более качественный путь самообучения? И какая вероятность работать без "корочки"?

Всем заранее спасибо за ответы.


21

Моя история: опыт изучения программирования

Привет дорогое сообщество pikabu!


Я бы хотел поделиться с Вами своей историей о моем долгом пути к изучению программирования. Может быть моя история кому то поможет поверить в себя и начать изучать программирование также как это получилось у меня. Извиняюсь за возможный сумбур в изложении и орфографические ошибки.


В настоящий момент я проживаю свой 33 год в этом мире. И половину из этих лет меня восхищали художники в компьютером мире - программисты. Всегда хотелось самому научиться «писать код». И не важно что это будет: сайт, программа или небольшой скрипт. Но так уж получилось, в силу тех или иных причин, мечта всегда откладывалась в дальний ящик. В институте нам преподавали программирование на Паскаль и Делфи. Но то ли не было понимания на тот момент, или желания и большой тяги к изучению, - обучение не задалось! С трудом сдавались лабораторные работы, эта куча открывающихся и закрывающихся фигурных скобок, непонятные конструкции, компиляция кода, исправление ошибок, снова компиляция... Все это отталкивало, подрывало веру в себя, в свои силы. В голове всегда крутилась мысль «программирование наверное не мое...». Тогда ещё не было многочисленных интернет-ресурсов, онлайн-курсов, интернет у большинства был «по карточкам» и войти в программирование была та ещё задача, если ты особо то и не понимаешь для чего тебе это нужно и в каком направлении двигаться. И вот, спустя может быть пару лет, у меня вновь появилось желание попробовать. Я пошёл в книжный магазин и накупил различных самоучителей по языку Basic. Сейчас уже и не вспомню почему тогда мой выбор остановился именно на этом языке программирования. Открыв любую книгу все начиналось как всегда «за здравие»: ну это вроде бы мне понятно, ну это ясно, ну это я знаю... Я пытался начать писать свой первый условный «калькулятор», радовался своим первым успехам, радовался тому, как достаточно легко и просто все у меня вроде бы получается. Но неизменно наступал момент, когда я переходил к новой главе книги, которую можно описать примерно так: «Итак, вы написали своё первое приложение(калькулятор), а теперь мы создадим свою первую нейтронную сеть!». То есть, каждый раз появлялась огромная пропасть, которую я не мог преодолеть. Желание освоить все и сразу играло со мной злую шутку. Мне казалось, что я знаю материал, но в реальности мои знания были поверхностными. И в определённый момент пробелов в знаниях языка становилось так много, что преодолеть пропасть непонимания следующей главы не представлялось возможным. Сложно было преодолевать первые неудачи-препятствия. В дополнение к этому наверное лень, отсутствие должной мотивации, непонимание того где и как я смогу применить полученные знания в очередной раз поставили крест на моих попытках научиться программировать. И вот, полтора года тому назад я сделал третью попытку. К этому меня подтолкнул пример коллеги по работе, который самостоятельно освоил связку php+MySQL и автоматизировал несколько бизнес-процессов на нашей и своей прошлой работе. Его код был не то чтобы ужасен, но он работал и приносил пользу людям. И я задал себе вопрос: «если он смог, чем я хуже?». В этот раз к выбору языка программирования я подошёл более ответственно. Мне не очень понравился вариант с web-ориентированным PHP. Хотелось чего-то простого, понятного, красивого, развивающегося, достаточно современного, с максимальной широтой направлений для последующего применения. Так мы с другим моим коллегой остановили свой выбор на Python и начали вместе его изучать! Python мне сразу понравился своей понятностью, лаконичностью и чистотой кода, кучей готовых библиотек и «батареек» на все случаи жизни. Python не ограничивает написание когда на основе только лишь классов(к примеру) - можешь писать как тебе нравится, и это тоже подкупало. Я прочитал кучу статей об изучении Python, где все сводилось к изучению книг Луца и Саммерфилда. Но слава богу я пошёл другим путём. Дело в том, что труды этих авторов сродни библии. В этих книгах все слишком серьезно и основательно для изучения, - они больше похожи на справочники, чем на учебные пособия. Путём «проб и ошибок» я подобрал себе другие книги и учебные материалы по Python, которые мне больше подошли. Но самое главное нашёл бесплатный онлайн-ресурс, где по каждой теме даются лишь необходимые для изучения основы и по 10-15 задач для закрепления материала раздела. Данный ресурс не позволял мне убежать вперёд, пока я не изучу материалы предыдущего раздела. Задачи этого курса относятся к так называемому «спортивному(олимпиадному) программированию». Да, они не решают каких либо реальных задач, с которыми в реальности приходится сталкиваться программистам. Но они позволяют освоить синтаксис и основные конструкции языка. То, что мне было нужно! В общем, спустя год моей борьбы с языком и с собой(лень, прокрастинация итд итп), с перерывами и остановками, но я наконец то закончил этот курс! Несколько раз сталкиваясь со сложными(для меня на тот момент) задачами я даже бросал изучение, но мысль о незаконченном деле не давала мне покоя и я вновь возвращался к прохождению курса. Хотя, наверное, хватило бы и 2-3х месяцев усиленной и целенаправленной работы, а то и того меньше при наличии свободного времени. Это где-то 130 задач на работу с основными типами данных(строки, числа, множества, списки, словари). Параллельно читал книги и другие материалы, установил приложение с Python на iPad и программировал по дороге в метро. Это наверно даже не треть того, что необходимо знать полноценному программисту на Python. Но это позволило мне начать делать свои первые реальные проекты: например спарсить данные с веб-страницы, открыть pdf документ-найти все используемые слова и перевести их через api яндекс-переводчика и так далее.

Сейчас я пытаюсь изучать фреймворк Django. Даётся с трудом. Пока что освоил базовые вещи для работы с моделями, формами и шаблонами. Но это позволило мне сделать свой первый web-проект на Django+bootstrap, который позволяет вести реестр адресатов(отправителей), создавать шаблоны конвертов на основе документов word и собственно печатать эти самые конверты.

Сейчас моя цель(если хотите мечта) к которой я хочу прийти - это создание небольшого портала(социальная сеть) для одного (скажем так) оффлайнового сообщества.

По прошествии лет, глядя сверху вниз на упущенные годы, я сделал следующие для себя выводы, которые можно описать следующими высказываниями(не моими конечно же):

1. Дорогу осилит идущий.

2. Не так страшен черт как его малюют.

3. Курочка по зернышку клюет.

4. Не боги горшки обжигают.

Главное поставить себе цель, целенаправленно идти к ней маленькими шагами и все обязательно получится и приложится!


Вот собственно и вся моя история. Надеюсь она кого-нибудь сподвигнет начать программировать: автоматизировать рутинные задачи, создать свой первый web-сайт, игру и в последствии, возможно стать полноценным разработчиком и получить свою первую работу! Для меня это уже скорее хобби и приложение к основной работе... хотя может ещё не все потеряно в мои 33 года? :)


Что хотелось бы ещё добавить: найдите себе компаньона, с которым вы могли бы вместе изучать язык программирования. Лично мне это очень помогало: всегда можно обсудить какие-то непонятные моменты, на определенных этапах присутствует «дух соперничества» и вообще вместе веселее. Будет совсем идеально если вы найдете ментора - того человека, который уже прошёл этот путь и как учитель может подсказать вам непонятные моменты.


От себя хочу добавить, что готов оказать помощь всем желающим, кто хотел бы изучить Python или Django. С радостью поделюсь хорошими электронными материалами по изучению Python(книги, видеокурсы), подскажу толковые веб-ресурсы и расскажу как изучал я, а также помогу на уровне своей компетенции в этих вопросах :) Быть может тут найдутся те, кто знает html+css+jscript и хотел бы освоить бэкэнд на Python - я думаю мы могли бы найти общий язык :)


Буду безумно признателен, если найдётся такой человек(ментор), который уже прошёл свой путь и поможет мне постичь азы web-разработки на фреймворке Django!

Показать полностью
11

Как я изучал(изучаю фреймворк Django). Личный опыт.

Все что далее, - мой личный опыт изучения фреймворка Django. Может быть пригодится таким же новичкам в программировании как и я.


Что нужно знать (необходимый МИНИМУМ) относительно Python:

-Ввод и вывод данных

-Условия

-Вычисления

-Цикл for

-Строки

-Цикл while

-Списки

-Функции и рекурсия

-Словари

-Работа с модулями и функциями (создание, импортирование, вызов...)

-Основы регулярных выражений

-pip


В настоящее время, актуальной версией является Django 2.0. Но я советую начать изучение с версии 1.11. Почему именно так:

1. По Django 2.0 мало различных материалов на русском языке. Для 1.11 материалов достаточно.

2. Django 2.0 и 1.11 очень похожи, но в 2.0 сделали упрощённый синтаксис маршрутизации URL. Из-за этого могут возникнуть сложности на начальном этапе, если пытаться обучаться по материалам основанным на 1.11 версии.

3. Большинство готовых приложений и расширений до сих пор поддерживают только 1.11 версию и не поддерживают 2.

4. Расширенная поддержка версии 1.11LTS заканчивается в 2020 году, а 2.2LTS пока не видно.


Итак, расскажу как изучал я. Может быть кому-нибудь покажется полезной данная информация.


I. -НАЧАЛО ("копипастим" свой первый проект):

ЦЕЛИ:

-понять как работает фреймворк(установка, как создается проект, архитектура, как взаимодействуют его основные компоненты - urls, модели, шаблоны, views)

1. Проходим туториал на Django-girls.

Ссылка: tutorial.djangogirls.org/ru

Шаг за шагом копипастим и пытаемся понять что вообще происходит.

Чему научит:

-Основы основ.

-Основы работы в консоли Linux

-Установка Python

-Создание и работа в виртуальном окружении Python.

-Установка Django

-Основы основ Django (urls, модели, шаблоны, views)

Альтернативный вариант (более короткий):

Учебник официальная документация (docs.djangoproject.com/en/1.11 - раздел FirstSteps). Или перевод документации с портала djbook.ru

ссылка: djbook.ru/rel1.9/

Версия 1.9 а не 1.11, но в этом нет ничего страшного.


2. Цикл лекций "Web-технологии. Разработка на DJANGO" от Mail.ru

ссылка: https://www.youtube.com/playlist?list=PLrCZzMib1e9qZwq95WVmG...

Если не интересны основы-основ про web-разработку (уже знаете или задача быстро освоить Django), тогда начинаем смотреть с "9. Web-технологии. MVC фреймворки | Технострим" и дальше.

Чему научит:

-Основам web-разработки

-Архитектуре и принципам взаимодействия компонентов, основам Django


3. Книга "Django: практика создания Web-сайтов на Python" Владимир Александрович Дронов:

ссылка: сами кУпите или найдёте.

Читаем главы с 1 по 7. Главу 2 опционально можете пропустить, если знакомы с основами Python.

Выполняем примеры из книги на тестовом проекте - создаем модели, через шелл добавляем-изменяем-сортируем-фильтруем данные в модели, создаем urls привязки, пытаемся писать первый контроллер, смотрим как и что можно сделать в темплейтах.

Чему научит:

-Пониманию основ MVC

-Через примеры кода начнет приходить понимание, как все работает.


ИТОГ:

-Через копипасту проекта в общем виде начали понимать как все устроено и работает

-Через лекции MAIL.ru узнали как работают web-приложения, как выглядит архитектура типичного web-приложения(взаимодействие бекенда-фронтэнда, работа протоколов, общая архитектура), узнали место Django в этой архитектуре

-Через книгу более детально познакомились с паттерном проектирования MVC (что такое модель, контроллер, представление), через примеры кода начали понимать как это может работать.


II. ПРОДОЛЖЕНИЕ НАЧАЛА(продолжаем "копипастить"):

1. Ищем курс "iTBursa Python&Django". Продажу курса уже закрыли (скорее всего видимо потому, что курс попал в открытый доступ). В курсе есть основы Python и Django. Плюсом идут основы: html/css, bootstrap web, http, databases, linux, shell, git/github, nginx, deployment.

Продолжаем копипастить уже по этому курсу, но теперь самостоятельно выполняем "Контрольные задания"(или не выполняем). В принципе этот курс мог бы заменить все вышеперечисленное. Но так как каждый человек воспринимает информацию по разному, ИМХО лучше усвоится информация, полученная из разных (по типу и виду подачи информации) источников.

Дополнительно: курс itvdn-Django от Антона Мазуна

2. Продолжаем читать и перечитывать Дронова

3. Изучаем официальную документацию или перевод документации 1.9(djbook.ru)

ИТОГ:

-На этом этапе уже должно быть освоено достаточное количество материалов для написания своего собственного приложения.


II. КОНЦА НЕ ВИДНО(создаём свой собственный проект):

Собственно если все делали правильно, на этом этапе должны быть все необходимые знания для реализации собственного проекта. По сути, можно сосредоточиться только на Джанго, а фронтэнд слепить из кусков Bootstrap.


Теперь отправляемся в свободное плавание на просторы интернета. Теперь уже сами ищем статьи, видео, гайды, бестпрактис. Продолжаем читать Дронова и переходим на актуальную версию Django 2.x

Дополнительно можно начать читать:

-Django подробное руководство. Адриан Головатый. Джейкоб Каплан-Мосс. Книга очень старая (2010), многое изменилось, но общие принципы остались те же.

-Tango with Django. Многие советуют эту книгу.

Вот ещё парочка:

-Web Development with Django cookbook

-Django unleashed


Извиняюсь за возможные орфографические, и в особенности, за пунктуационные ошибки.


ЗЫ. Кстати, в комментах к моему предыдущему посту (Моя история: опыт изучения программирования) и по почте многие высказывали мысль о создании канала в Телеграмм по данной тематике. Такой канал я создал. Не знаю можно ли ссылку(или нет). Называется python_noobs(PythonNoobs). Сейчас там 12 человек(в основном пикабушники с предыдущего поста - всем кому рассылал свою подборку материалов). Создан чисто для новичков. На канале обмениваемся опытом изучение Python и смежных технологий, делимся ссылками на полезные материалы(статьи, видео, гайды, курсы...), собираем команду для совместных проектов и просто общаемся, чтобы не прокрастинировать :)

Показать полностью
8

Базы данных в формате вопрос-ответ для тренировки чат бота

Этот вопрос узко-направленный. Для тех кто занимается нейросетями. Давайте делиться базами данных, чтобы научить бота понимать троллинг, шутки, опечатки. Для этого нужна база данных настоящих переписок людей в соцсетях. В качестве затравки http://panchenko.me/data/
Вот еще интересная статья https://habrahabr.ru/company/dca/blog/274027/ там тоже есть ссылка на базу данных с твиттера. Ищу больных этой идеей в хорошем смысле. Возможно написать парсер, который мониторит переписки на разных сайтах, пополняя базу. Идея такая чтобы сделать открытый корпус разговорных диалогов на русском языке

Базы данных в формате вопрос-ответ для тренировки чат бота Программирование, Искусственный интеллект, Боты, Python

email: docplanetasite@gmail.com
skype: ernest_faizullin

telegram, wire: erniesto77

4

Нужна помощь в Python.

Проблема заключается в следующем: язык я не изучал, но рабочая программа на нём нужна уже завтра!

За основу я взял пример программы "Расчет зарплаты с учетом переработки" т.е. за переработанные часы ставка увеличивается в 1.5 раза. Открываю я её через командную строку cmd .. Проблема с её отладкой (типы данных не соответствуют) А ещё очень бы хотелось, чтобы результат (ФИО(она же name) - цех(czeh) - Зарплата за месяц (pay)) выводился в какой-либо файл (либо zarplata.docx либо zarplata.txt) 150- это допустимое количество часов работы в месяц.

Вот сама прога:

print('Приветствую вас. Эта программа предназначена для расчета заработной платы работников нашего завода')

print('Введите имя работника')


name=input()

print('Введите цех работника: ')

czheh=input()

inp=input("Введите количество отработанных часов : ")

hours=float(inp)

inp=input("Введите суммы оплаты труда за 1 час :")

rate=float(inp)

if hours<=150 :

pay = rate*hours

else :

pay = rate*150+(rate*1.5*(hours-150))

pay=float(pay)

print('заработная плата '+name+' за месяц равна: ' pay)

konets=input("Нажмите Enter для завершения")


Пикабушники, спасайте!!!

Отличная работа, все прочитано!