Я хочу переместить данные из формы в sqlite3:
@app.route('/')
@app.route('/reg/')
@app.route('/reg', methods='POST')
def registration():
conn = sqlite3.connect('trainsdb2.db')
c=conn.cursor()
name = request.forms.get('name', default=False)
#surname = request.forms.get('surname', default=False)
#mail = request.forms.get('mail', default=False)
#adress = request.forms.get('adress', default=False)
#login_def = request.forms.get('login_defined', default=False)
#password_def = request.forms.get('password_defined', default=False)
c.execute('INSERT INTO LoginData (id,login,password) VALUES("%s","%s","%s")'%(random.randint(1,1000),name,'b'))
conn.commit()
conn.close()
return template('index')
Моя таблица sqlite3 была создана следующим образом:
CREATE TABLE LoginData (id int AUTO_INCREMENT NOT NULL, login varchar NOT NULL, password varchar NOT NULL, "loggedin" integer NOT NULL DEFAULT '0', "randStri" varchar, PRIMARY KEY(id))
Моя форма выглядит так:
<form action="/reg" method="post">
<table><tr>
<td><b>Name: </b></td><td><input name="name" type="text"></td></tr>
<tr><td><b>Surname: </b></td><td><input name="surname" type="text"></td></tr>
<tr><td><b>Email: </b></td><td><input name="mail" type="text"></td></tr>
<tr><td><b>Adress: </b></td><td><input name="adress" type="text"></td></tr>
<tr><td><b>Login: </b></td><td><input name="login_defined" type="text"></td></tr>
<tr><td><b>Password: </b></td><td><input name="password_defined" type="password"></td></tr>
<tr><td><b><input value="Register!" type="submit"></b></td><td></td></tr>
</table>
</form>
Когда я помещаю свои данные в html-форму в поле 'login' в моей базе данных, у меня появляется ' False ', всегда, независимо от того, что я поместил в html-форму. В чем причина?
Я не думаю, что нарушаю какие-либо ограничения, налагаемые на базу данных.
Одна строка из моей базы данных выглядит так:
РЕДАКТИРОВАТЬ: После изменения значения по умолчанию на: forms.get('name', default="Missing 'name' in forms.")
Я вижу, что значение не передается, однако вопрос в том, почему это происходит?
РЕДАКТИРОВАТЬ 2: У меня также есть страницы входа, код следующий, эта часть работает без каких-либо колебаний:
@app.route('/login')
@app.route('/login/')
@app.route('/login', method='POST')
def login():
conn = sqlite3.connect('trainsdb2.db')
c = conn.cursor()
loginName = request.forms.get('login_name', default=False)
password = request.forms.get('password', default=False)
c.execute('SELECT * FROM LoginData WHERE login="%s" AND password="%s"' %(loginName,password))
if c.fetchone() is not None:
response.set_cookie("user", loginName, secret=secretKey)
log.info = ('not none')
conn.commit()
conn.close()
redirect('/index')
return True
else:
conn.commit()
conn.close()
return template('login')
conn.commit()
conn.close()
return template('login')
Есть идеи? Ответы?