Articles about Python

Python Logo

Python is one of the most versatile programming languages in the world. With Python, you can control electronics, build web applications and perform machine learning.

In this page, you can find articles on Python references, coding and application setup.

How to paginate MongoEngine records in your Python 3 Flask application

Flask and MongoEngine help makes development work easier.

One common task in the development of backend applications is the pagination of database records. Without pagination, the application server can run out of memory while generating a response from the database records.

This post discusses a way to paginate MongoEngine records in your Python 3 Flask application using the facilities provided by the Flask-MongoEngine extension.

How to deploy Python 3 Flask application on Raspberry Pi 3 with Raspbian Stretch Lite, Nginx, Supervisor, Virtualenv and Gunicorn

Raspberry Pi 3 Model B boards make good gifts for programmers and if someone had gifted you with one, you may want to use it as a control center for interacting with various IoT sensors and devices at home.

In such a situation, you may want to build a Python 3 Flask application to present the web interface for accessing the control center.

After you had built that Python 3 Flask application, the next step will be to deploy it on your Raspberry Pi 3 for serving HTTP requests.

This post discusses how you can deploy a Python 3 Flask application on Raspberry Pi 3 with Raspbian Stretch Lite, Nginx, Virtualenv and Gunicorn.

How to setup Raspbian Stretch Lite on Raspberry Pi 3 to run Python 3 applications

Raspbian Stretch Lite operating system is the Raspberry Pi Foundation’s official supported operating system for running headless software. It is a good operating system for different Raspberry Pi 3 use cases. Some examples include:

If you are planning to use Raspberry Pi 3 GPIO to interface with the real world, it is recommended that you setup Raspbian Stretch Lite to run Python 3 applications.

This post provides the steps to setup Raspbian Stretch Lite on Raspberry Pi 3 for running Python 3 applications.

How to enable authenticated MongoDB access for Flask-MongoEngine applications

After having a first look at MongoDB more than 5 years back, I told myself that I will use MongoDB to realise the next functionality of Techcoil.

With exposure to Python 3, Flask and MongoEngine in 2017, I had acquired the skills to build a microsite to recommend gift ideas. This microsite uses MongoDB to store the gift recommendation data.

With Flask and MongoEngine, development of this microsite did not take too much leisure time. With MongoDB not enforcing authentication, there were not much hindrance in setting up the development environment for this microsite.

However, this free-for-all mode of accessing MongoDB is not recommended for production environments. Without authentication, it is easier for ill-intentioned people to mess up the backend database.

To ensure that I have a go-to post for implementing authenticated access to MongoDB backed projects in the future, I document the steps needed for Flask-MongoEngine applications to access MongoDB instances with access control turned on.

How to setup Raspbian Stretch Lite on Raspberry Pi Zero W to run Python 3 applications

With Wi-Fi included, the Raspberry Pi Zero W is very useful for implementing embedded projects that require Internet connection.

Apart from using the Raspberry Pi Zero W for CCTV surveillance, we can run customized Python 3 applications on a Raspberry Pi Zero W for various use cases.

Pairing the official operating system for Raspberry Pi with Python 3, we will be able to get a versatile computer to do our bidding.

Anticipating the need to setup a version of Raspbian Lite on Raspberry Pi Zero W for future Python 3 projects, I created this post to document the steps of how to do so with Raspbian Stretch Lite.

How to setup Raspbian Jessie Lite on Raspberry Pi 3 to run Python 3 applications

The Raspbian operating system is the Raspberry Pi Foundation’s official supported operating system. As of this writing, Raspbian comes in two flavours – one with a graphical user interface for us to build a low cost desktop computer and the other without the graphical user interface.

If you intend to use your Raspberry Pi 3 with sensors and build a web interface for you to manage those sensors, Raspbian Jessie Lite is one operating system which you may want to install on your Raspberry Pi 3.

And with the versatility of Python 3, setting up Raspbian Jessie Lite on Raspberry Pi 3 to run Python 3 applications will be one of the first task that you will perform before you embark on your next sensor based project with the Raspberry Pi 3.

This post documents the steps that I took to setup Raspbian Jessie Lite on Raspberry Pi 3 to run Python 3 applications.

How to host your Python 3 Flask MVP with Supervisor on Ubuntu Server 16.04

Due to its minimalistic design, the Python Flask framework is ideal for building the web server layer of minimal viable products (MVP) to validate customers’ needs. However, development work is just one part of the user validation efforts. To ensure that our customer can access our Flask MVP and provide feedback as and when they are available, we will need to get it running with as a server daemon.

Supervisor is a convenient tool for running applications as a server daemon.

This post documents the steps that I took to host a Python 3 Flask MVP with Supervisor on an Ubuntu Server 16.04 instance.

How to setup Ubuntu Classic Server 16.04 on Raspberry Pi 3 for running Python 3 applications

Most of the customers who wanted to try out my minimal viable products (MVP) would provide me with an instance of Ubuntu Classic Server 16.0x these days. As such, it makes sense for me to trial my MVPs on the Ubuntu Classic Server 16.0x to ensure that I spend minimal time in deploying my MVPs to validate my customers’ needs. Since I have a few Raspberry Pi 3s lying around in the house, I can install a version of Ubuntu Classic Server 16.0x to serve as the development server for me to trial my MVPs.

Fortunately, the good folks at ubuntu-pi-flavour-maker.org had put up an optimised Ubuntu Classic Server 16.04 image for Raspberry Pi 3.

This post documents the steps that I took to run Ubuntu Classic Server 16.04 on my Raspberry Pi 3 for running Python 3 applications.

How to serve static files with Python 3 + Flask

Python Flask is a good microframework for building a minimal viable product to validate our ideas on the Internet. A modern web application encompasses documents that tell the web browser how to build the visuals of our web application and communicate with our server backend. Such documents are usually static in nature and are served as they are to the web browser without any processing from the server end.

Comparing setting up an instance of the Nginx server with adding code in our Flask application, the latter can be a more convenient way for us to realise our minimal viable product. This post documents the proof of concept that I did to serve static files with Python 3 and Flask.