Какви python tools използвате в работата си?

+8 гласа
1,172 прегледа
попитан 2016 юни 17 от mon4oy (380 точки)
Здравейте. Интересно ми е да направим една дискусия относно python. Неприятно ми е език като него да не е масово обсъждан. Ще се радвам да изкоментираме готини tool-ове, които ползвате, за да улесните живота си на макс.

4 отговори

0 гласа
отговорени 2016 юни 17 от Deyan Delev (1,830 точки)
Следващият език, който ще науча ще бъде Python :)

Иначе вчера бях попаднал на много добри tools, aма за php :))))
0 гласа
отговорени 2016 юни 18 от VeskoNikolov (1,620 точки)

Тази тема я виждам като "споделете опита си с Python".

Вземаме това предвид и започваме с първото и най-важно според мен нещо, а именно: Ползвайте линукс-базирана система при разработки на Python. За основни работи може и под Windows, но за по-сложни задачи линукса е must-have. В практиката си съм срещнал доста проблеми при windows, които просто не фигурират при линукс.

Независимо от системата ви, горещо препоръчвам платформата Anaconda - това е "пакет", който включва самият питон в него, както и доста други полезни пакети (python packages), които понякога са трудни за инсталация (случва се да има грешки при инсталация) и това отнема време.
С търсене в гугъл за "anaconda python" ще го намерите.

Текстови редактори няма да споменавам, тъй като в това отношение всеки е с предпочитанията си.

За уеб разработка:
За начинаещи програмисти или просто по-малки проекти препоръчвам фреймуърка Flask.
За по-големи приложения или системи препоръчвам Django. Тук е хубаво да бъдат споменати следните пакети:

  • Django registration redux - готова система за регистрации.
  • Django recaptcha - google recaptcha, но далеч по-лесна за интеграция.

Що се отнася до учене... Доста от нещата, с които съм работил имат добра документация. Но все пак ще спомена един сайт, от който уча: https://pythonprogramming.net/

Хостинги за Python-базирани сайтове... Тук ситуацията в България като цяло е много зле. Аз лично се сблъсках с доста проблеми когато се опитах да пусна Python сайт. В крайна сметка host.bg ми свърши работа най-добре сред конкуренцията.

Почти забравих за версиите. Аз лично не намирам голяма разлика между 2.7.x и 3.5.x. Ако искате продуктите ви да са future-proof (да са по-дълготрайни), тогава ползвайте по-новият 3.5. При него обаче не всички third-party пакети са ъпдейтнати. Друг минус към по-новата версия не намирам. Като финална дума бих казал ползвайте 3.5 (това е лично мнение).

Към момента това се сещам. Ако се сетя още нещо ще дописвам като коментар.

коментиран 2016 юни 20 от mon4oy (380 точки)
Всъщност вече да, за python 3.x, но преди Django 1.7, Django не подържаше официално Python 3.x...тогава вариантите бяха само 2.7.x. Аз не знам защо, не мога да се аргументирам, но настоявам, че Python 2.7 ми е по-любим и предпочитам на него да си пиша. Между другото го и развиват доста добре. Спомням си, че много бързо реагираха с SSL issue-тата.
Bottle също не е лош framework за малки проекти.
Django suit е идеален bootstrap based админ за Django.
Много ми харесваше и Django rest framework, но не съм сигурен, че наваскват достатъчно бързо развитието на Django. Имал съм issue-та :)
0 гласа
отговорени 2016 юни 20 от code (2,460 точки)
Аз лично не използвам никакви tool-ове на Python. Преди време научих Python и опитах да реализирам една малко по-оплетена програма, използвайки структурите данни на езика. Беше пълен провал, въпреки голямото време което отделих. Друго нещо което не ми харесва при Python е, че отместванията имат синтактичен смисъл. Това съществено ограничава стила ми на писане, което считам за досадно и дървено.
коментиран 2016 юни 20 от mon4oy (380 точки)
Всеки си има вкус. За мен е досадно да има скоби например.  А между другото дори и в код със скоби пак е редно да спазваш идентация.
коментиран 2016 юни 20 от code (2,460 точки)
Не всички езици са със скоби. Има такива в които маркираш края с ключова дума (но не и началото). Отместванията определено трябва да се спазват в 99% от случаите, но в 1% от ситуациите е полезно да ги нарушиш (стига последното да го правиш не хаотично, а по някакви специални правила, които ти си си определил и спазваш стриктно).

Иначе да - всичко е въпрос на вкус и въпрос дали разработваш сам или заедно с други хора.
коментиран 2016 юни 20 от mon4oy (380 точки)
Съгласен съм :)
0 гласа
отговорени 2016 юни 20 от Nolongerexists2 (1,790 точки)

Най използвания Python Framework до сега е Django.

Django е web framework на високо равнище, предлага бързо развитие и чист програмен дизайн. Дава ви възможност да се средоточите в писането на приложението, без да се налага да изобретявате другите неща.

Django е предназначен да помогне на разработчиците да работят по-бързо.

Django се е средоточил изцяло от към защитата като помага на разработчиците да избягват много грешки



Flask e microframework, насочен е предимно към малки приложения с по-прости изисквания, докато Pyramid и Django са и двете, насочени са и към големи приложения и към малки, но са по-разширени и по-гъвкави. Pyramid цели да даде на разработчика да използва правилните инструменти за своя проект, това означава, че той може да избере база данни, UTL структура, template и други. Django се стреми да включи всичко което може да се използва в уеб средата той включва ORM, докато Pyramid и Flask оставят на разработчика да избере как иска да съхранява своите данни. Django прави нещата по-лесни за разработчиците, без да е необходимо да правят много решения за инфраструктурата на тяхното приложение, той има template, форми, администриране на база данни, докато при Pyramid всичките тези неща изискват външни библиотеки. Flask е сравнително нов, докато Pyramid и Django са по-стари и са натрупали в себе си много плъгини и разширения, и имат невероятно съдържание от данни.

Django и Pyramid идват с Bootstrapping инструменти, докато Flask не предоставя нищо подобно тъй като той не е предназначен за големи MVC приложения

Flash Code за изкарване на ‘Здравейте’

from flask import Flask

app = Flask(__name__)

@app.route("/")

pattern

def hello():

    return "Здравейте"

if __name__ == "__main__":

    app.run()

Pyramid  е предназначен за по-големи и по-сложни приложения, именно за това се създава по-голям скелет

hello_pyramid

├── CHANGES.txt

├── development.ini

├── MANIFEST.in

├── production.ini

├── hello_pyramid

│   ├── __init__.py

│   ├── static

│   │   ├── pyramid-16x16.png

│   │   ├── pyramid.png

│   │   ├── theme.css

│   │   └── theme.min.css

│   ├── templates

│   │   └── mytemplate.pt

│   ├── tests.py

│   └── views.py

├── README.txt

└── setup.py

Django разделя проекта в отделни приложения, по подразбиране той включва само празни моделни и шаблонни файлове

hello_django

├── hello_django

│   ├── __init__.py

│   ├── settings.py

│   ├── urls.py

│   └── wsgi.py

├── howdy

│   ├── admin.py

│   ├── __init__.py

│   ├── migrations

│   │   └── __init__.py

│   ├── models.py

│   ├── tests.py

│   └── views.py

└── manage.py

...