首页 > 使用flask+sqlite注册账号时报错table user has no column named 'xxx'?

使用flask+sqlite注册账号时报错table user has no column named 'xxx'?

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

想要在这个行业做好,就要学会debug。这都是笔误,求人不如求已

【热门文章】
【热门文章】