[英]Got the error TypeError: execute() takes no keyword arguments
我正在嘗試使用 python 和 sqlite3 構建一個注冊/登錄系統。 我的代碼似乎有問題。
if request.form.get("password") != request.form.get("confirm"):
return apology(" Passwords doesn't match")
# try:
prim_key = c.execute("INSERT INTO accounts (username, hash) VALUES (:username, :hash)",
username = request.form.get("username"),
hash = generate_password_hash(request.form.get("password")))
conn.commit()
# except:
# return apology("Sorry! username already exists!", 403)
# if prim_key is None:
# return apology("Failed to register! something went wrong!", 403)
# user_if = prim_key
return redirect("/")
else:
return render_template("register.html")
我評論了一些行,以確定是否有問題。 在引用之前,我不斷收到錯誤“對不起。用戶名已經存在!”。
現在,在我運行應用程序時引用這些行后,我得到了
文件“application.py”,第 76 行,寄存器 prim_key = c.execute("INSERT INTO accounts (username, hash) VALUES (:username, :hash)", TypeError: execute() 沒有關鍵字 arguments
我想知道我是否遺漏了這些是我導入的模塊。
import sqlite3
from flask import Flask, flash, jsonify, redirect, render_template, request, session
from werkzeug.security import check_password_hash, generate_password_hash
import secrets
如果我不能在這里使用關鍵字 arguments,有沒有辦法解決這個問題? 還是我做錯了整個事情? 我是 Python 的新手,所以我不知道這是否只是一個愚蠢的問題。 我幾乎閱讀了所有類似這樣的問題,但我想不出任何辦法來完成這項工作。 所以任何幫助表示贊賞。 感謝您的時間!
如錯誤所示, execute
不使用任何關鍵字 arguments。 您只需要傳遞一個值的字典:
prim_key = c.execute("INSERT INTO accounts (username, hash) VALUES (:username, :hash)",
{ 'username': request.form.get("username"),
'hash': generate_password_hash(request.form.get("password"))
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.