python - 类型错误 : delete_dog() missing 1 required positional argument: 'Dog_id' How do I get around this?

标签 python sql flask

我编写了这段代码并收到了此 TypeError 并且不理解该错误。我做错了什么。

    
@app.route("/deletedog", methods=["GET", "POST"])
def delete_dog(Dog_id):
    p=dog.query.filter_by(Dog_id=Dog_id).first()
    if request.method == 'GET':
        db.session.delete(p)
        db.session.commit()
        return redirect(url_for('index'))
    return render_template("deletedog.html")

`

我有点摸不着头脑,我认为它不需要位置

最佳答案

如果您想同时支持 GETPOST,则无法从函数参数中获取 Dog_id。您需要使用 request.formrequest.args.get()

@app.route("/deletedog", methods=["GET", "POST"])
def delete_dog():
    if request.method  == 'POST':
        Dog_id = request.form['dog_id']
    else:
        Dog_id = request.args.get('dog_id')
    p=dog.query.filter_by(Dog_id=Dog_id).first()
    if request.method == 'GET':
        db.session.delete(p)
        db.session.commit()
        return redirect(url_for('index'))
    return render_template("deletedog.html")

关于python - 类型错误 : delete_dog() missing 1 required positional argument: 'Dog_id' How do I get around this?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75921864/

相关文章:

python - 如何在 python 中捕获任何异常并打印堆栈跟踪 (DJANGO)

python - Flask Docker 镜像在 Azure 上出现超时错误

python - 如何配置python环境

python - 更正一个文件中的错误并将其写入新文件

python - 嵌套字典 for 循环

sql - RODBC:合并来自不同数据库的表( channel )

sql - 有没有更好的方法来调试 SQL?

php - 用于获取未提交特定一周时间的用户数据的 SQL 查询?

python - 导入 flask.ext.wtf

python - 使用 Flask-Login 获取 'str' 对象在 Flask 中没有属性 'is_authenticated'