我在烧瓶中有一个注册表,路径如下
@app.route("/adgangskontrol/Opret", methods=['GET', 'POST'])
def register():
# Output message if something goes wrong...
msg = " "
# Check if "Brugernavn", "Kodeord" and "email" POST requests exist (user submitted form)
if request.method == "POST" and "Brugernavn" in request.form and "Kodeord" in request.form:
# Create variables for easy access
Brugernavn = request.form["Brugernavn"]
Kodeord = request.form["Kodeord"]
# Check if bruger exists using MySQL
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute("SELECT * FROM brugere WHERE Brugernavn = %s", (Brugernavn,))
bruger = cursor.fetchone()
# If bruger exists show error and validation checks
if bruger:
msg = "Bruger findes i forvejen"
elif not re.match(r'[A-Za-z0-9]+', Brugernavn):
msg = "Brugernavn må kun undeholde bogstaver og tal"
elif not Brugernavn or not Kodeord:
msg = "Alle felter skal udfyldes!"
else:
# bruger doesnt exists and the form data is valid, now insert new bruger into brugers table
cursor.execute("INSERT INTO brugere VALUES (NULL, NULL, %s, %s, CURRENT_TIMESTAMP, NULL)", (Brugernavn, Kodeord))
mysql.connection.commit()
msg = "Du er nu registreret!"
elif request.method == "POST":
# Form is empty... (no POST data)
msg = "Alle felter skal udfyldes!"
# Show registration form with message (if any)
return render_template("register.html", msg=msg)
我的sql表是这样的:
有没有办法只插入“Brugernavn”或“Kodeord”,这是你注册时填写的数据?
当我尝试按原样执行时,出现此错误:
MySQLdb._exceptions.OperationalError: (1048, "Column 'rfid_uid' 不能为 null")
答案 0 :(得分:0)
表描述显示 rfid_uid
列不能将 NULL
作为值:这就是“NULL”列中的“NO”的含义。
因此,您必须在插入时提供一个值,或者更改列定义以接受 NULL
值。您可以使用 ALTER TABLE
语句更改列定义,如下所示*:
ALTER TABLE brugere MODIFY COLUMN rfid_uid VARCHAR(255);
在执行此操作之前,您应该确定在此列中包含 NULL
不会影响您的数据完整性。