dotlah! dotlah!
  • Cities
  • Technology
  • Business
  • Politics
  • Society
  • Science
  • About
Social Links
  • zedreviews.com
  • citi.io
  • aster.cloud
  • liwaiwai.com
  • guzz.co.uk
  • atinatin.com
0 Likes
0 Followers
0 Subscribers
dotlah!
  • Cities
  • Technology
  • Business
  • Politics
  • Society
  • Science
  • About
  • Technology

How To: Create A Flask/API Project In Ubuntu

  • April 6, 2019
Total
0
Shares
0
0
0

Prerequisites

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

 

Structure Overview

view source
print?
01|__ dotlah_flask_api
02    |__ api
03        |__ res
04            |__ __init__.py
05            |__ application_res.py
06        |__ __init__.py
07    |__ app_wsgi.py
08    |__ runserver.py
09    |__ requirements.txt
10    |__ README.md

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

Steps

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.

view source
print?
1$ cd ~
2$ nano setup-flask-api.sh

 

view source
print?
01#!/bin/bash
02mkdir $1
03mkdir -p $1/api/res
04 
05touch $1/api/res/__init__.py
06touch $1/api/res/application_res.py
07touch $1/app_wsgi.py
08touch $1/runserver.py
09touch $1/requirements.txt
10touch $1/README.md

 

02.  Run the setup script.

view source
print?
1# FORMAT
2$ sh setup-flask-api.sh <project-name-without-space>
3 
4# SAMPLE
5$ sh setup-flask-api.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

view source
print?
1# FORMAT
2$ cd <project-name-without-space>
3 
4# SAMPLE
5$ cd dotlah_flask_api

 

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

view source
print?
1$ nano requirements.txt

 

Set the value:

view source
print?
1flask

 

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.

view source
print?
1# FORMAT
2 
3# SAMPLE
4$ cd dotlah_flask_api
5$ python3 -m venv project-venv

 

06. Activate the Virtual Environment.

view source
print?
1$ source project-venv/bin/activate 

 

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

view source
print?
1(project-venv) $ pip install -r requirements.txt

 

08. Update the content of runserver.py.

view source
print?
1(project-venv) $ nano runserver.py

 

view source
print?
1# -*- coding: utf-8 -*-
2 
3# Start Flask with default web server
4from api import application
5 
6application.run(host='127.0.0.1', port=8888, debug=True)

 

09.  Update the dunder python file.

view source
print?
1(project-venv) $ nano api/__init__.py

 

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

view source
print?
1from flask import Flask
2 
3application = Flask(__name__)
4 
5import api.res.application_res

 

10.  Update the application_res.py.

view source
print?
1(project-venv) $ nano api/res/application_res.py

 

view source
print?
01# -*- coding: utf-8 -*-
02 
03from flask import jsonify
04from api import application
05 
06@application.route('/', methods=['GET'])
07def get_app_properties():
08name = 'dotlah-flask-api'
09version = '0.0.1'
10 
11app_properties = \
12{
13  'name' : name
14  , 'version' : version
15}
16 
17return jsonify(app_properties)

 

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

11. Run the application

view source
print?
1(project-venv) $ python runsever.py

 

It should show something similar

Note that running the application via this way (runserver.py) 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)

view source
print?
1$ curl http://localhost:8888

 

Via Browser

view source
print?
1http://localhost:8888
Total
0
Shares
Share
Tweet
Share
Share
Related Topics
  • API
  • Flask
  • How To
  • Python
  • Ubuntu
majulah

Previous Article
  • Technology

How To: Configure Python Virtual Environment In Ubuntu

  • April 6, 2019
View Post
Next Article
  • Science

Statistics For Dummies: A Quick Guide On Probability Axioms

  • April 25, 2019
View Post
You May Also Like
View Post
  • Artificial Intelligence
  • Technology

Thoughts on America’s AI Action Plan

  • Dean Marc
  • July 24, 2025
View Post
  • Technology

ESWIN Computing launches the EBC77 Series Single Board Computer with Ubuntu

  • dotlah.com
  • July 17, 2025
View Post
  • Gears
  • Technology

Samsung Galaxy Z Fold7: Raising the Bar for Smartphones

  • Dean Marc
  • July 9, 2025
View Post
  • Cities
  • Technology

Meralco PowerGen’s PacificLight starts up 100 MW fast-response plant in Singapore

  • dotlah.com
  • June 20, 2025
View Post
  • Technology

Apple services deliver powerful features and intelligent updates to users this autumn

  • Dean Marc
  • June 12, 2025
View Post
  • Artificial Intelligence
  • Machine Learning
  • Technology

Apple supercharges its tools and technologies for developers to foster creativity, innovation, and design

  • Dean Marc
  • June 11, 2025
View Post
  • Technology
  • Working Life

It’s time to stop debating whether AI is genuinely intelligent and focus on making it work for society

  • dotlah.com
  • June 8, 2025
oracle-ibm
View Post
  • Artificial Intelligence
  • Technology

IBM and Oracle Expand Partnership to Advance Agentic AI and Hybrid Cloud

  • Dean Marc
  • May 6, 2025


Trending
  • Scuba Diving 1
    Wetsuit or Drysuit? As always, it depends. This quick guide can help you choose.
    • August 2, 2025
  • 2
    Thoughts on America’s AI Action Plan
    • July 24, 2025
  • 3
    Introducing Surface Laptop 5G: Seamless connectivity, built for business
    • July 23, 2025
  • 4
    Press Start (Or Hit Enter)! Your Go-To Loadout for Streamers and Gamers.
    • July 19, 2025
  • 5
    ESWIN Computing launches the EBC77 Series Single Board Computer with Ubuntu
    • July 17, 2025
  • 6
    Samsung Galaxy Z Fold7: Raising the Bar for Smartphones
    • July 9, 2025
  • Camping 7
    The Summer Adventures : Camping Essentials
    • June 28, 2025
  • 8
    Meralco PowerGen’s PacificLight starts up 100 MW fast-response plant in Singapore
    • June 20, 2025
  • 9
    A Father’s Day Gift for Every Pop and Papa
    • June 14, 2025
  • 10
    Apple services deliver powerful features and intelligent updates to users this autumn
    • June 12, 2025
Trending
  • Internet and cloud 1
    • Technology
    Cloudflare Publishes Top Internet Trends for 2024
    • December 9, 2024
  • 2
    • Cities
    Where US Commuters Spend The Most Time Stuck In Traffic
    • February 5, 2020
  • 3
    • Technology
    National Library Board And Singapore Press Holdings Extend Free Access Of eNewspapers For Library Patrons Beyond Circuit Breaker
    • June 1, 2020
  • ai-ethics-regulation-p.placide_AI_ethics_and_regulation_As_AI_becomes_more_prevalent_e3c39ddb-68ff-4b1e-9c55-34e781bb0344 4
    • People
    • Politics
    • Technology
    Lots Of Talk Of A.I. Regulation, Then Nothing More. A Little Nudge Below. Part 1.
    • June 18, 2023
  • 5
    • Technology
    DSTA And Rolls-Royce Collaborate On Digital Technology
    • July 23, 2019
  • 6
    • Science
    • Technology
    NUS Researchers Find Potential Solution To Overheating Mobile Phones
    • December 13, 2019
  • 7
    • Technology
    The Singapore Students Using Cloud For Smarter Recycling
    • October 25, 2019
  • 8
    • Lah!
    • Society
    Singapore And Brunei Successfully Conclude 24th Edition Of Exercise Maju Bersama
    • February 8, 2020
  • 9
    • Lah!
    New NEA Facility To Boost Production Of Male Wolbachia-Aedes Aegypti Mosquitoes To Benefit More Residents
    • December 3, 2019
  • 10
    • Technology
    Deputy Prime Minister Heng Swee Keat launches Singapore’s Safer Cyberspace Masterplan 2020
    • October 7, 2020
  • 11
    • Climate Change
    • Environment
    • People
    Understanding The Human Side Of Climate Change Relocation
    • June 18, 2019
  • job application 12
    • Features
    • People
    How To Address A Difficult Past When Applying For A Job
    • December 15, 2020
Social Links
dotlah! dotlah!
  • Cities
  • Technology
  • Business
  • Politics
  • Society
  • Science
  • About
Connecting Dots Across Asia's Tech and Urban Landscape

Input your search keywords and press Enter.