Python For Web Development
Tags: webdev, python, startup, datascience
Published: 2020-03-18 10:07:33

# Introduction
When it comes to Python for web development. I feel that it is really not talked about much. Since the upward trend & popularity for Python has been towards Data science in recent years due to popular tools like Pandas, Keras, Tensorflow and the attractiveness of Data Science.  

It is hard to find a web developer that uses Python. It is harder for a Django one. This comes from me being in a startup that uses Django for backend and talking to multiple friends who are CTOs from Startups as well who are hiring Full Stack Python developers.

My usual advice when talking to them is to search for ways to **train** them from the **ground up**. Especially for people who have fundamentals in programming, in general, to increase your pool of python web developers.
  
# Data Science
Since I am on the subject of Data Science for web development. I found that the usual practice for Data Scientist who use Python. They will be just using Flask for APIs development. Due to its flexibility & ease of building API or using Data visualisation tools like [Matplotlib][1], [Streamlit][2] & [Plotly][3].

For this subject, I talk in detail regarding [the pain][4] of developing these dashboards or data visualisation. Nevertheless, it is due to the ease of not needing to understand the various intricacies of web development. To create a highly interactive & functional dashboard that is served or shared through a website internally or externally.

On a practical level, learning web development for Python helps in the ease of transition from a web developer using Python. To building APIs, data visualisations & union of both web development and data science world.

# Which Web Framework Should I Learn?
If you're serious about web development for Python. I would suggest you learn [Django][5]. Due to its force multiplier capabilities that allow high scalability, batteries included philosophy, security & ease of rapid prototyping. 

With the price of being daunting with a steep learning curve. As it uses certain best practices to allow ease of development like having a fix project structure and [Model-View Template Pattern (MVT)][6]. 

# API First
If you are using either Flask or Django. i assume that you are building it for a backend in the form of either RESTful APIs, GraphQL & gRPC.

Therefore understanding how to create documentations like [Postman][7], [Swagger Editor][8] or adopting API standards like [OpenAPI][9] along with [understanding testing & mocking][10] can be really helpful in the adoption of your API.

Since great documentation is the key for anyone to adopt an API and integrate into their product or services. You can look at either [SalesForce][11], [Twilio][12], [DigitalOcean][13], [Stripe][14] as a great source of inspiration for creating excellent technical documentation. 

# Conclusion
Lastly, it makes more sense to be a Python web developer because of the low barrier of entry with a niche as either a Flask or Django developer. Instead of using Python for Data Science purposes which may require a higher level of education requirements for jobs and understanding complex algorithms in AI or ML or Data analysis.

If you like this article do **sign up** for my [Adventurer's Newsletter](https://maxongzb.activehosted.com/f/1) for my **Adventurer's newsletter** which contains interesting content I stumble across over the week in the area of **Python**, **Web Development**, **Startup**.

You can also **follow** me to get the **latest** update of my article on **Dev**
The original post was on [Python For Web Development - Reading Time: 3 Mins](https://www.maxongzb.com/python-for-web-development-reading-time-3-mins/) and cover image by [Sam Erwin on Unsplash](https://unsplash.com/photos/q78PYnUehV8)

# Reference
* [Python for Beginners][17]
* [APi First Business][18]
* [Install Python 3.8 and Django 3.0 + on Windows 10][19]
* [Creating Dashboard to Visualise Data in Python][4]
* [Flask][20]
* [Django][5]
* [Steamlit][2]
* [Plotly][3]
* [Matplotlib][1]
* [Model-View Template Pattern (MVT)][6]
* [Python Tutorial For Begineers][21]
* [Getting Start with Django][22]
* [Full Stack Python][23]
* [Cookiecutter][24]
* [Simple is Better Than Complex][25]
* [Python Web Development][26]
* [Postman][7]
* [Swagger Editor][8] 
* [OpenAPI][9]
* [Cosmic Python, TDD, testing and external dependencies - Harry Percival][10]
* [SalesForce][11] 
* [Twilio][12]
* [DigitalOcean][13]
* [Stripe][14]
* [Coding for Entrepreneurs][15]
* [CleverProgrammer][16]


[1]: https://matplotlib.org/
[2]: https://www.streamlit.io/
[3]: https://plot.ly/
[4]: https://www.maxongzb.com/creating-dashboard-to-visualise-data-in-python/
[5]: https://www.djangoproject.com/
[6]: https://www.tutorialspoint.com/django/django_overview.htm
[7]: https://www.postman.com/
[8]: https://swagger.io/tools/swagger-editor/
[9]: https://swagger.io/specification/
[10]: https://testandcode.com/102
[11]: https://developer.salesforce.com/
[12]: https://www.twilio.com/docs/api
[13]: https://www.digitalocean.com/docs/
[14]: https://stripe.com/docs/api
[15]: https://www.codingforentrepreneurs.com/
[16]: https://youtu.be/3mwFC4SHY-Y
[17]: https://www.codehawke.com/python_for_beginners.html
[18]: http://apievangelist.com/2020/03/10/apifirst-business/
[19]: https://youtu.be/gmuu4swNGSk
[20]: https://flask.palletsprojects.com/en/1.1.x/
[21]: https://youtu.be/4F2m91eKmts
[22]: https://dev.to/hackersandslackers/getting-started-with-django-49cb
[23]: https://www.fullstackpython.com/
[24]: https://github.com/cookiecutter/cookiecutter
[25]: https://simpleisbetterthancomplex.com/
[26]: https://realpython.com/tutorials/web-dev/