from flask import Flask,render_template
from flask import request
import sqlite3
app = Flask(__name__)
app.config.update(dict(
SECRET_KEY = 'NI CAI CAI KAN'
))
@app.route('/',methods=['GET','POST'])
def Home():
return "<h5>Welcome to home.Please login</h5>"
@app.route('/login',methods=['POST','GET'])
def login():
conn = sqlite3.connect('user.db')
cu = conn.cursor()
try:
cu.execute("create table user(users text primary key not null,\
pass text not null)")
except sqlite3.OperationalError:
pass
if request.method == 'POST':
u = request.form['username']
p = request.form['password']
cu.execute('select *from user where users=%s' %(u))
data = cu.fetchone()
if u==data[0] and p==data[1]:
return '</h2>Login!</h2>'
elif u!=data[0] or p != data[1]:
return '<h2>Username or password error!</h2>'
else:
return '<h2>Please sign up!</h2>'
if request.method == 'GET':
return render_template("login.html")
@app.route('/register',methods=['GET','POST'])
def register():
conn = sqlite3.connect('user.db')
cu = conn.cursor()
try:
cu.execute("create table user(user text primary key not null,\
pass text not null)")
except sqlite3.OperationalError:
pass
if request.method == 'GET':
return render_template('register.html')
if request.method == 'POST':
u = request.form['username']
p = request.form['password']
cu.execute('insert into user(users,pass) values(%s,%s)' %(u,p))
conn.commit()
return '<h2>register!</h2>'
if __name__ == '__main__':
app.run(debug=True)
再注册页面输入abc作为账号密码
提示sqlite3.OperationalError: table user has no column named abc
尝试过将request.form改成request.from.get['username',None]结果报错
method is not subscriptable。。
<form action="/register" method="post">
<p><input name="username"></p>
<p><input name="password" type="password"></p>
<p><button type="submit">register</button></p>
</form>
这是注册页面...
列名明明叫user而非users啊自己写的都不记得了?
学用看traceback