Developer Tools & Frameworks for a Python Developer
Tags: beginners, productivity, python
Published: 2019-12-04 03:08:08

# 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][1]. 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][2] will be your choice. 

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

# 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][6] 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][7] 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][8] 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][9], [Mob Wisgi][10] & [Gunicorn ][11].

If your using **AWS**, I would recommend the use of [Zappa][12]. 

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

## 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](http://eepurl.com/dOUoUb) 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](https://www.maxongzb.com/developer-tools-and-frameworks-for-a-python-developer-reading-time-3-mins/) and [Photo by Todd Quackenbush on Unsplash](https://unsplash.com/photos/IClZBVw5W5A)


# References
* [Python Developers Survey 2018][14]
* [RealPython Tool Tutorials][15]
* [Visual Studio][1]. 
* [Visual Studio Code][2]
* [CodeEnvy by RedHat][4] 
* [AWS Cloud9][5]
* [Scrapy][6]
* [headless][7] 
* [uWisgi][9]
* [Mob Wisgi][10] 
* [Gunicorn ][11]
* [Zappa][12]
* [AWS Lambda][13]


[1]: https://visualstudio.microsoft.com/
[2]: https://code.visualstudio.com/
[3]: https://visualstudio.microsoft.com/services/visual-studio-online/
[4]: https://codenvy.com/
[5]: https://aws.amazon.com/cloud9/
[6]: https://github.com/scrapy/scrapy
[7]: https://www.scrapingbee.com/blog/web-scraping-101-with-python
[8]: https://djangopackages.org/
[9]: https://uwsgi-docs.readthedocs.io/en/latest/
[10]: https://modwsgi.readthedocs.io/en/develop/
[11]: https://gunicorn.org/
[12]: https://www.zappa.io/
[13]: https://docs.aws.amazon.com/lambda/index.html
[14]: https://www.jetbrains.com/research/python-developers-survey-2018/
[15]: https://realpython.com/tutorials/tools/