Pythonista 3 connect sqllite3 database to table view

1.1k Views Asked by At

Trying to connect sqlite3 database to my tableview in ui form (On my iPad). Used many cases but without result.

      import ui
      import sqlite3

      def loadData (self):
      connection = sqlite3.connect('pythonsqlite.db')
      query = "SELECT * FROM projects"
      result = connection.execute(query)
      self.tableview1.setRowCount(0)
      for row_number, row_data in enumerate(result):
      self tableview1.insertRow(row_number)
      for column_number, data in enumerate(row_data):
      self.tableview1.setItem(row_number, column_number)
      connection.close()

      ui.load_view('MyForm').present('sheet')

It gives me

     self tableview1.insertRow(row_number)
              ^
     SyntaxError: invalid syntax

Can anybody give me any direction?

2

There are 2 best solutions below

0
On
     import ui
     import sqlite3 as db


     tv = ui.TableView('tableview1')
     conn = db.connect('pythonsqlite.db')
     conn.row_factory = lambda cursor, row: row[0]
     c = conn.cursor()
     ids = c.execute('SELECT name FROM projects').fetchall()
     print(ids)

     tv.data_source = ui.ListDataSource(ids)
     tv.present('fullscreen') 

     ui.load_view('MyForm').present('sheet')

I can create custom tableview, but can’t pass data to existing one in my ui form.

1
On

Here’s a minimal example showing how to refer to a UI designer element in your code.

import ui

v = ui.load_view()
v['tableview1'].background_color = 'grey'

v.present('fullscreen')