[英]UnboundLocalError Python-flask
當我嘗試從 mysql 數據庫中存在的目錄表中查詢類別時,發生 UnboundLocalError。 UnboundLocalError:分配前引用的局部變量“類別”。 我正在嘗試通過數據庫表產品添加產品。 我需要 select 類別表中該產品的類別。 我使用 query.all() 來做到這一點。 這是apps.py
@app.route('/AddProduct',methods=["GET", "POST"])
def add_product():
if request.method =="POST":
name=request.form['name']
price=request.form['price']
description = request.form['description']
category = categories.query.all()
image = request.files['image']
if image and allowed_file(image.filename):
filename = secure_filename(image.filename)
image.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
#cursor = mysql.connection.cursor()
#cursor.execute('SELECT * FROM categories')
#account = cursor.fetchall()
cursor.execute('INSERT INTO products VALUES(NULL,% s,% s,% s,% s,% s)',(name,price,description,image,categoryId))
mysql.connection.commit()
return render_template('Shopping.html',category=category)
這是我的購物.html 文件
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Admin</title>
</head>
<body>
<form action="/home" method="POST" enctype="multipart/form-data" class="register-form" id="register-form">
<input type="text" name="name" id="name" placeholder="Product Name"/>
<input type="" name="price" id="price" placeholder="price"/>
<input type="text" name="description" id="description" placeholder="description"/>
<input type="file" name="image"><br>
<label for="category">ADD catogory</label>
<select name="category" id="category" class="form-control" required>
<option value="">Select a category</option>
{% for cat in category %}
<option value="cat.categoryId">{{cat.categoryName}}</option>
{% endfor %}
<input type="submit">
</form>
這是因為這一行:
category = categories.query.all()
僅在發出 POST 請求時執行。 首次加載頁面 (GET) 時,變量category
未初始化。
您可以簡單地將這一行移到 add_product 例程的頂部,移出if
塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.