name ‘date_login’ not defined....
-
Hello there:
Having problems defining names when:
c.execute('''CREATE TABLE IF NOT EXISTS logindata (date_login, user_name, pwd_user)''')
Thank you.
import ui import sqlite3 import console equis = 0 yee = 0 ancho = 800 alto = 800 bgcolor = 'white' bordercolor = '#7c1a80' borderwide = 5 nameapp = 'WELCOME TO HABITFUN' class mainscreen(ui.View): def __init__(self, *args, **kwargs): self.frame = (equis,yee,ancho,alto) self.background_color = bgcolor self.border_color = bordercolor self.border_width = borderwide self.name = nameapp conn = sqlite3.connect("logindata.db", check_same_thread=False) c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS logindata (date_login, user_name, pwd_user)''') vanimation = mainscreen() vanimation.present('sheet') def chge_name(): vanimation.name = 'HABITFUN' ui.delay(chge_name,2) v=ui.View(name='LOGIN',background_color='#4b8040' ,frame=(400,0,400,400)) v1=ui.View(name='LOGIN',background_color='#2d5f80' ,frame=(0,0,400,800)) def button1_tapped(sender): sender.superview.close() vanimation.close() def button2_tapped(sender): c.execute("INSERT INTO logindata VALUES(?,?,?)", (date_login, user_name, pwd_user)) conn.commit() conn.close button1 = ui.Button(title = 'SALIR', alignment=ui.ALIGN_CENTER, bg_color = '#fff2f2', font_color = 'black') button1.frame = (50,250,100,50) button1.tint_color = 'black' button1.border_width = 1 button1.action = button1_tapped button2 = ui.Button(title = 'ACEPTAR', alignment=ui.ALIGN_CENTER, bg_color = '#fb99ff', font_color = 'black') button2.frame = (250,250,100,50) button2.tint_color = 'black' button2.border_width = 1 button2.action = button2_tapped label1 = ui.Label(alignment=ui.ALIGN_CENTER,bg_color='#fafafa',border_color='black',border_width=1,frame=(50, 50, 300, 40),name='User',text='User Name', text_color = '#0d60fd') label2 = ui.Label(alignment=ui.ALIGN_CENTER,bg_color='#fafafa',border_color='black',border_width=1,frame=(50, 150, 300, 40),name='Password',text='Password', text_color = '#0d60fd') t1=ui.TextField(frame=(50,100,300,40)) t2=ui.TextField(frame=(50,200,300,40)) v.add_subview(label1) v.add_subview(label2) v.add_subview(button1) v.add_subview(button2) v.add_subview(t1) v.add_subview(t2) t1.begin_editing() #vanimation.add_subview(v) vanimation.add_subview(v1) vanimation.add_subview(v) v.present('sheet')
-
@JonB said:
Also, note in one case you are trying to execute with variable names, but in the other case you use literals.
That is normal:
In the create statement, the variables names are littéral
In the insert statement, the variables names are variables
-
Thank you both.
Where can I manipulate sqlite3. I mean, Browse data, delete columns, etc.
Regards;
-
@sendog3c said:
Where can I manipulate sqlite3
Do you want to say "where can I find how to..."?
If this is the question, there are a lot of docs, like this oneExample (be careful, your conn.close needs parentheses)
def button2_tapped(sender): date_login = '20190101' # or what you want user_name = sender.superview['t1'].text pwd_user = sender.superview['t2'].text c.execute("INSERT INTO logindata VALUES(?,?,?)", (date_login, user_name, pwd_user)) conn.commit() c.execute("SELECT * FROM logindata") rows = c.fetchall() print(rows) conn.close()
-
Yes I know there a lot docs here, but I mean if there is by example: a console to work with my DB alone or if there is way to use command line with specific sqilte3's instructions. supposing "sqlte3 /?".
Thanks.
-
@sendog3c you could write a little script like
import console import sqlite3 conn = sqlite3.connect("logindata.db", check_same_thread=False) c = conn.cursor() #c.execute("CREATE TABLE IF NOT EXISTS logindata (date_login, user_name, pwd_user)") while True: r = input() if r == 'close': break #PRAGMA table_info(logindata) #SELECT * FROM logindata c.execute(r) rows = c.fetchall() print(rows) c.close()
It will ask you a sql command, execute it, fetch the results and print them
Try with
PRAGMA table_info(logindata)
Or
SELECT * FROM logindataOf course, this is only valid for commands which can be followed by a fetch.
Up to you to modify the code to make it more generalized
-
Thanks again
-
I bought the SQLed app for quick checking things. The downside is you have to "share..." the sqlite db between the apps.
Btw. in the PythonCheatSheet is a sqlite section.
-
Thank you Brumm. I a going to check it.
-
I haven't tried it, but there is https://forum.omz-software.com/topic/2326/sqlite3-browser