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!