In this video I’ll show you how to use the PostGres database with your Kivy apps with Python.
Postgresql is a very popular database for production level apps, and using it with Kivy is a breeze. In this video we’ll host our Postgres database on Heroku using their free tier and connect it to our local Kivy app.
#kivy #codemy
Python Code: postgres_db.py
GitHub Code: postgres_db.py
from kivy.lang import Builder
from kivymd.app import MDApp
#import sqlite3
import mysql.connector
class MainApp(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette = "BlueGray"
# Create Database Or Connect To One
#conn = sqlite3.connect('first_db.db')
# Define DB Stuff
mydb = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "password123",
database = "second_db",
)
# Create A Cursor
c = mydb.cursor()
# Create an actual database
c.execute("CREATE DATABASE IF NOT EXISTS second_db")
# Check to see if database was created
#c.execute("SHOW DATABASES")
#for db in c:
# print(db)
# Create A Table
c.execute("""CREATE TABLE if not exists customers(
name VARCHAR(50))
""")
# Check to see if table created
#c.execute("SELECT * FROM customers")
#print(c.description)
# Commit our changes
mydb.commit()
# Close our connection
mydb.close()
return Builder.load_file('second_db.kv')
def submit(self):
# Create Database Or Connect To One
#conn = sqlite3.connect('first_db.db')
mydb = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "password123",
database = "second_db",
)
# Create A Cursor
c = mydb.cursor()
# Add A Record
sql_command = "INSERT INTO customers (name) VALUES (%s)"
values = (self.root.ids.word_input.text,)
# Execute SQL Command
c.execute(sql_command, values)
# Add a little message
self.root.ids.word_label.text = f'{self.root.ids.word_input.text} Added'
# Clear the input box
self.root.ids.word_input.text = ''
# Commit our changes
mydb.commit()
# Close our connection
mydb.close()
def show_records(self):
# Create Database Or Connect To One
#conn = sqlite3.connect('first_db.db')
mydb = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "password123",
database = "second_db",
)
# Create A Cursor
c = mydb.cursor()
# Grab records from database
c.execute("SELECT * FROM customers")
records = c.fetchall()
word = ''
# Loop thru records
for record in records:
word = f'{word}\n{record[0]}'
self.root.ids.word_label.text = f'{word}'
# Commit our changes
mydb.commit()
# Close our connection
mydb.close()
MainApp().run()
Kivy Design Code: postgres_db.kv
GitHub Code: postgres_db.kv
MDFloatLayout: BoxLayout: orientation: "vertical" size: root.width, root.height Label: id: word_label text_size: self.size halign: "center" valign: "middle" text: "Enter A Name" font_size: 32 TextInput: id: word_input multiline: False size_hint: (1, .5) Button: size_hint: (1, .5) font_size: 32 text: "Submit Name" on_press: app.submit() Button: size_hint: (1, .5) font_size: 32 text: "Show Records" on_press: app.show_records()

Man, I am just starting a personal project where I want to connect a kivy app to an online postgres database. I am completely new with postgres and heroku and I thought it would be very challenging but wow, your 12mn video gives me everything I need and shows me that it is very easy. Thanks a lot
Glad you enjoyed it!