• Operating System: Ubuntu 16 or Ubuntu 18
  • Python 3.X is installed
  • Python Pip is installed
  • Python Virtual Environment is installed (Optional)


Structure Overview

|__ dotlah_flask_api
    |__ api
        |__ res
    |__ requirements.txt

Replace the dotlah_flask_api directory with the project name of your choice.


01. Create the necessary directories and files. You can use the following shell script to create it, or manually enter them in the terminal, or create them from another way.

$ cd ~ 
$ nano 


mkdir $1
mkdir -p $1/api/res

touch $1/api/res/
touch $1/api/res/
touch $1/
touch $1/
touch $1/requirements.txt
touch $1/


02.  Run the setup script.

$ sh <project-name-without-space> 

$ sh dotlah_flask_api 


While it is totally safe to create a Project with spaces, it is more of a standard in this case.


03. Navigate to the Project directory

$ cd <project-name-without-space> 

$ cd dotlah_flask_api 


04. Update the necessary Python library/packages by setting the value of the requirements.txt

$ nano requirements.txt 


Set the value:



05. (Optional but recommended). Create a virtual environment dedicated to the Flask/API project.

For instructions on how to install and configure virtual environment. See this guide.


$ cd dotlah_flask_api 
$ python3 -m venv project-venv 


06. Activate the Virtual Environment.

$ source project-venv/bin/activate  


07. Install the flask library via Pip using the requirements.txt

(project-venv) $ pip install -r requirements.txt 


08. Update the content of

(project-venv) $ nano 


# -*- coding: utf-8 -*-

# Start Flask with default web server
from api import application'', port=8888, debug=True)


09.  Update the dunder python file.

(project-venv) $ nano api/ 


This imports the res python module, the endpoints will be located at the application_res or other res (Resource) python file.

from flask import Flask 

application = Flask(__name__) 

import api.res.application_res 


10.  Update the

(project-venv) $ nano api/res/ 


# -*- coding: utf-8 -*-

from flask import jsonify
from api import application

@application.route('/', methods=['GET'])
def get_app_properties():
name = 'dotlah-flask-api'
version = '0.0.1'

app_properties = \
  'name' : name
  , 'version' : version

return jsonify(app_properties)


Above will create a GET endpoint accessible by the root path, (/).

11. Run the application

(project-venv) $ python 


It should show something similar

Note that running the application via this way ( should only be used on local development. If needed to deploy on a Web Application server, a middleware or WSGI server should be used instead.


12. Test the application on the browser or via CURL.

Via Curl (open another terminal session)

$ curl http://localhost:8888


Via Browser

Please follow and like us:
Previous How To: Configure Python Virtual Environment In Ubuntu
Next Statistics For Dummies: A Quick Guide On Probability Axioms

Suggested Posts

Singapore’s Greening Journey: 200 Years And Beyond – An Exhibition On Singapore’s Transformation Into One Of The World’s Lushest Cities

All Travellers Arriving In Singapore From 27 March 2020, 0900 Hours, Must Submit Health Declaration Via The SG Arrival Card E-Service

Singapore Airlines Offers Fee Waiver And Flexible Rebooking For All Customers

NEA Offers Automatic Six-Month Extension Of Cleaning Business Licence And Accreditation To Alleviate Administrative Workload For Cleaning Businesses