Я не знаю, как добавить сообщение в таблицу сообщений и позволить пользователю иметь возможность редактировать сообщение. в то время как другие пользователи могут просматривать сообщения и им нравится
import sqlite3, datetime
conn = sqlite3.connect("test.db")
conn.execute('''CREATE TABLE IF NOT EXISTS Users
(username PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
time DATETIME NOT NULL,
password INT NOT NULL); ''')
conn.execute('''CREATE TABLE IF NOT EXISTS Posts
(username PRIMARY KEY ,
post TEXT NOT NULL,
time DATETIME NOT NULL); ''')
now = datetime.datetime.now()
current = now.strftime("%d-%m-%Y %H:%M:%S")
print(current)
def signUp():
while True:
username = input("Enter a username: ")
if 0 < len(username) < 16:
check = conn.execute("SELECT name FROM Users WHERE username = ?",(username,)).fetchone()
if check == None:
break
else:
print('username taken')
while True:
name = input("Enter your full name: ")
if 0 < len(name) < 16 and ' ' in name:
break
while True:
email = input("enter your email: ")
if '@' in email:
break
while True:
password = input("Enter your password as long as its less than 8 characters: ")
if len(password) < 8:
break
conn.execute("INSERT INTO Users(username,name,email,time,password) VALUES(?,?,?,?,?)" , (username, name, email, current, password))
conn.commit()
print("your details have been saved\n")
details = conn.execute('SELECT * FROM Users WHERE username = ?', (username,)).fetchall()
print('your info:', details)
return username
def signIn():
while True:
usernameInput = input("Enter your username: ")
check = conn.execute("SELECT name FROM Users WHERE username = ?",(usernameInput,)).fetchone()
if check != None:
break
else:
print('no user found by that name')
while True:
passwordInput = input('enter your password: ')
check = conn.execute("SELECT name FROM Users WHERE password = ? AND username = ?",(passwordInput, usernameInput)).fetchone()
if check != None:
break
else:
print('incorrect password')
details = conn.execute("SELECT * FROM Users WHERE username = ?",(usernameInput,)).fetchone()
print('your info:', details)
return usernameInput
def menuOption():
print("Do you want to:\n1)Sign up\n2)Sign in")
while True:
userResponse = input(">>> ")
if userResponse == '1' or userResponse == '2':
break
else:
print('you must choose 1 or 2')
if(userResponse == "1"):
usr = signUp()
elif(userResponse == "2"):
usr = signIn()
wpost(usr)
def get_all():
print('\nall user info:\n')
allusers = conn.execute('SELECT * FROM Users').fetchall()
for i in allusers:
print(i)
def post(username):
while True:
yourpost = input("This is your post, type whatever you want: ")
if len(yourpost) < 300:
conn.execute("INSERT INTO Posts(username,post,time) VALUES(?,?,?)" , (username, post, current))
conn.commit()
allposts = conn.execute('SELECT * FROM Posts').fetchall()
for x in allposts:
print(x)
break
elif len(yourpost) > 300:
print('your post is longer than 300 characters')
break
def wpost(username):
print("Do you want to: \n(Y)create a post\n(N)not")
while True:
userResponse2 = input(">>> ")
if userResponse2 == "Y" or userResponse2 == 'N':
break
else:
print("you must choose Y OR N")
if(userResponse2 == "Y"):
post(username)
if(userResponse2 == "N"):
get_all()
menuOption()
conn.close()
это ошибка, которую я сейчас получаю:
Traceback (most recent call last):
File "main.py", line 126, in <module>
menuOption()
File "main.py", line 83, in menuOption
wpost(usr)
File "main.py", line 119, in wpost
post(username)
File "main.py", line 95, in post
conn.execute("INSERT INTO Posts(username,post,time) VALUES(?,?,?)" , (username, post, current))
sqlite3.InterfaceError: Error binding parameter 1 - probably unsupported type.
Я не знаю, как добавить сообщение в таблицу сообщенийи позволить пользователю иметь возможность редактировать сообщение. в то время как другие пользователи могут просматривать сообщения и им нравится.