I put a print("test") inside my main function for my flask webapp, and the print doesn't ever run, unless i call main() at the end of my function, which then gives me a context error. I'm new to pythonanywhere and very confused, could someone please take a look and give some advice?
from flask import Flask, render_template
import openpyxl
app = Flask(__name__,
template_folder='/home/twalker/mysite/templates/')
@app.route('/')
def main():
print("test")
wb1 = openpyxl.load_workbook("/home/twalker/mysite/spreadsheet1.xlsx")
sheet1 = wb1.active
wb2 = openpyxl.load_workbook("/home/twalker/mysite/spreadsheet2.xlsx")
sheet2 = wb2.active
up_sales_dollars = []
down_sales_dollars = []
up_ordered_units = []
down_ordered_units = []
for row in sheet1.iter_rows(min_row=2):
product_title = row[0].value
ordered_revenue1 = row[1].value
ordered_units1 = row[2].value
for row2 in sheet2.iter_rows(min_row=2):
if row2[0].value == product_title:
ordered_revenue2 = row2[1].value
ordered_units2 = row2[2].value
break
if ordered_revenue1 > ordered_revenue2:
up_sales_dollars.append((product_title, ordered_revenue1, ordered_revenue2))
elif ordered_revenue1 < ordered_revenue2:
down_sales_dollars.append((product_title, ordered_revenue1, ordered_revenue2))
if ordered_units1 > ordered_units2:
up_ordered_units.append((product_title, ordered_units1, ordered_units2))
elif ordered_units1 < ordered_units2:
down_ordered_units.append((product_title, ordered_units1, ordered_units2))
context = {
'up_sales_dollars': up_sales_dollars,
'down_sales_dollars': down_sales_dollars,
'up_ordered_units': up_ordered_units,
'down_ordered_units': down_ordered_units
}
app.update_template_context(context)
return render_template("compare_spreadsheets.html")
main() # if i don't put this here, main() doesn't ever run, and print("test") never shows up
# but when I do run it like this, i get Error - AttributeError: 'NoneType' object has no attribute 'app'
For reference, I am trying to have python compare two excel files, then format the data on the frontend using d3js in graph form from my template file "compare_spreadsheets.html)
Thank you!