I have the below function which returns a list
def get_entered_datalist(firstname, lastname): if firstname and lastname: curr = db.session.execute(entered_data, {'firstname': firstname, 'lastname': lastname}) list_name = list() #this is a list contstructor statement so have () brackets, usually when declaring list we use [] brackets for name in curr: list_name.append(name) return list_name else: return False
It is being called this way
entered_names = get_entered_datalist(session['v_firstname'], session['v_lastname'])
and passed to the html file this way
return render_template('monthlybudget.html', title='Enter Monthly Budget Data', form=form, entereddata=entered_names)
The display code in HTML file is as below
{% if entereddata %} {% for x in entereddata %} <p>{{ x }} </p> {% endfor %} {% else %} <p>No data found</p> {% endif %}
but it is being displayed with round brackets and quote marks as below
The query getting the values from database is as below
select concat([First Name], ' ', [Last Name] ) as name from [dbo].[EAMonthlyBudget] where [Report to First Name]= :firstname and [Report to Last Name] = :lastname and [budget month] = datename(month,getdate()) and [budget year] = year(getdate());
I added a print statement in my python code to check what gets returned by the function and that is as below (shows with the brackets and quote marks)
[12/Aug/2022 15:29:44] "GET /static/images/nu_logo2.png HTTP/1.1" 304 - [('Janak Shah',), ('Julie Wang',)] -
How do I display the data without the brackets and quote marks?
Advertisement
Answer
Your curr variable contains tuples. try this code:
for name in curr: list_name.append(name[0])
I think you need to check of index out for range error.
I hope this helps.