I'm trying to use searchData
outside my if statement so I could use the variable inside my query. but it gives me an error of UnboundLocalError: local variable 'searchData' referenced before assignment
@app.route('/ML', methods=['GET', 'POST'])
def index():
if request.method == "POST":
request_data = json.loads(request.data)
searchData = (request_data['content'])
return jsonify(searchData)
mycursor = mydb.cursor(dictionary=True)
query = "SELECT * FROM COMPANY WHERE COMPANY_NAME LIKE %s LIMIT 20;"
mycursor.execute(query,("%" searchData "%",))
myresult = mycursor.fetchall()
company = []
content = {}
for result in myresult:
content ={'COMPANY_NAME':result['COMPANY_NAME'],}
company.append(content)
content = {}
return jsonify(company)
I've also tried declaring searchData
just above my if statement. it removes the error but the value isn't changed by my if statement. It stays just how I declared it. I appreciate any help anyone could give. Thank you in advance.
CodePudding user response:
It seems that this problem can be alleviated by the global
treatment to the variable. How about declaring the searchData as global first?
@app.route('/ML', methods=['GET', 'POST'])
def index():
global searchData
if request.method == "POST":
request_data = json.loads(request.data)
searchData = (request_data['content'])
return jsonify(searchData)
mycursor = mydb.cursor(dictionary=True)
query = "SELECT * FROM COMPANY WHERE COMPANY_NAME LIKE %s LIMIT 20;"
mycursor.execute(query,("%" searchData "%",))
myresult = mycursor.fetchall()
company = []
content = {}
for result in myresult:
content ={'COMPANY_NAME':result['COMPANY_NAME'],}
company.append(content)
content = {}
return jsonify(company)
CodePudding user response:
You have a return searchedInput
statement in if
statement block, removing it may solve your problem. return
statement will terminates your function execution.
For GET
method, searchedInput
should declared before if
statement.