DEV Community

Cover image for Developer Tools & Frameworks for a Python Developer
Max Ong Zong Bao
Max Ong Zong Bao

Posted on • Originally published at maxongzb.com

Developer Tools & Frameworks for a Python Developer

Introduction

Due to the trend for data sciences and popularity on the use of Python to teach computer programming.

Due to the growing amount of tools and framework used for Python from scripting to building AI there's always a tool or framework to make Python development easy to get started.

Below is my list of developer tools and frameworks that are useful for development using Python.

Tools

PyCharm Professional Edition

One of the most popular IDE used among Python developers

This a tool in my toolbox. That I spent my time a daily basis when I am developing anything in Python as it includes a lot of shortcuts and feature that makes development easy.

I fell in love with the Debugger feature.

One of the best experience I had in working with Microsoft Visual Studio. It was was easy to use and make debugger of my code a breeze.

Visual Studio Code

If your taste for Python development is the speedy text editor without much of the bell & and whistle.

Visual Studio Code will be your choice.

Recently Microsoft had released the Visual Studio Online which allows you to treat it as an online IDE similar to CodeEnvy by RedHat or AWS Cloud9.

Libraries

Request

This one of the unsung heroes that I use for my Test-Driven Development (TDD) for my API development.

It is easy to learn and allows you to make various query requests to an endpoint with ease.

I never require many Google searches as I could get what I need directly from the documentation.

Frameworks

Scrapy

Besides, it's used case for creating a spider to scrape for data. Scrapy is a useful automated tool used for testing out a website's UI/UX interaction to mimic human behaviour.

Besides that by using the headless option under the chrome browser.

It dramatically improves the speed of execution for Scrapy without the need to load a browser.

Django

It is my bread and butter skill for building a web development project.

With excellent documentation, developing with Django does not make you feel confused due their documentation is simple and easy to understand.

Django follows the "one-stop" model that usually provides a single way to get the jump.

If you require to build a specific feature for your endpoint and it's always great to head down to Django packages for the package you could integrate with Django.

Flask

One of the second contender for the top spot for web development with Django.

Flask offers flexibility & simplicity, which allows you to install multiple packages to get the specific relevant feature that you require.

The most painful the part for me was the setup of the project structuring in a flask project.

Zappa

Deploying has always been a pain to deal from the choice from uWisgi, Mob Wisgi & Gunicorn .

If your using AWS, I would recommend the use of Zappa.

Which provides a serverless function as a service by taking advantage of the AWS Lambda

Pytest

It's used to combine with either the use of Scrapy or Requests library.

It provides a low barrier of entry to learn to create test cases with little boilerplate code.

The main advantage for fixture is that it allows the population of test data into a database.

Once a test has completed executing it will be removed from the database.

Conclusion

I hope that these developer tools and framework could help you on your journey to become a better developer.

Please comment or follow my feed on what is your own favourite Python tool or library that you loved.

If you like my article, please sign up for Max Adventurer's Newsletter for awesome content I stumble across weekly in Python, Startup and Web Development.

You can also follow me to get the latest update of my article on Dev

This post was originally posted on Max's blog at Developer Tools & Frameworks for a Python Developer - Reading Time: 3 Mins and Photo by Todd Quackenbush on Unsplash

References

Oldest comments (11)

Collapse
 
juancarlospaco profile image
Juan Carlos

Good post, maybe 1 more for the list... 😜

Faster Than Requests with MultiThread Web Scraper:
dev.to/juancarlospaco/faster-than-...

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

Hahahaha shall try it out

Collapse
 
onekiloparsec profile image
Cédric Foellmi

Are missing a few libraries for testing in particular: freezegun (to travel in time), vcrpy (to fake the replay of "cassetes" = http requests), and factory_boy (to create tons of objects in setup of your tests) etc...

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

I heard of factory_boy but had not heard about others

Collapse
 
thnery profile image
Tacio Nery

Thanks for sharing this Max!

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

No problem I hope you like it.

Collapse
 
koladev profile image
Mangabo Kolawole

Great Post. I really loved it. I would add Masonite which is a great framework and can be an alternative to Django If you quickly need to develop a complex app. 😁
An article:
masonitecasts.com/articles/5-reaso...

Collapse
 
sobolevn profile image
Nikita Sobolev • Edited

Don't forget about wemake-python-styleguide: github.com/wemake-services/wemake-...

It is the strictest Python linter out there!

GitHub logo wemake-services / wemake-python-styleguide

The strictest and most opinionated python linter ever!

wemake-python-styleguide

wemake.services Supporters Build Status Coverage Status Github Action Python Version wemake-python-styleguide


Welcome to the strictest and most opinionated python linter ever.

wemake-python-styleguide logo

wemake-python-styleguide is actually a flake8 plugin with some other plugins as dependencies.

Quickstart

pip install wemake-python-styleguide

You will also need to create a setup.cfg file with the configuration.

We highly recommend to also use:

  • flakehell for easy integration into a legacy codebase
  • nitpick for sharing and validating configuration across multiple projects

Running

flake8 your_module.py

This app is still just good old flake8 And it won't change your existing workflow.

invocation resuts

See "Usage" section in the docs for examples and integrations.

We also support Github Actions as first class-citizens Try it out!

What we are about

The ultimate goal of this project is to make all people write exactly the same python code.

black mypy pylint flake8 wemake-python-styleguide
Formats code?
Finds style issues?
Finds bugs?
Collapse
 
iceorfiresite profile image
Ice or Fire

I'm going to give this a try! Thanks for sharing.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

This looks really nice.

Collapse
 
rhymes profile image
rhymes

httpx is emerging as a solid alternative to requests with http2 and async support