In this video I’ll show you how to start using the SQLite3 Database with your Kivy Apps!
We’ll start by learning how to add SQLite3, the built in database that comes with python to your Kivy app.
We’ll create a very basic app that lets us add a name to the database, and then show all the database records on the screen.
#kivy #codemy
Python Code: first_db.py
GitHub Code: first_db.py
from kivy.lang import Builder from kivymd.app import MDApp import sqlite3 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') # Create A Cursor c = conn.cursor() # Create A Table c.execute("""CREATE TABLE if not exists customers( name text) """) # Commit our changes conn.commit() # Close our connection conn.close() return Builder.load_file('first_db.kv') def submit(self): # Create Database Or Connect To One conn = sqlite3.connect('first_db.db') # Create A Cursor c = conn.cursor() # Add A Record c.execute("INSERT INTO customers VALUES (:first)", { 'first': self.root.ids.word_input.text, }) # 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 conn.commit() # Close our connection conn.close() def show_records(self): # Create Database Or Connect To One conn = sqlite3.connect('first_db.db') # Create A Cursor c = conn.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 conn.commit() # Close our connection conn.close() MainApp().run()
Kivy Design Code: first_db.kv
GitHub Code: first_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()
Add comment