Cherrypy Serve_File - ошибка длины содержимого - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь предоставить файл .csv в своем веб-интерфейсе cherrypy, но получаю ошибку длины содержимого: запрошенный ресурс возвратил больше байтов, чем объявленная длина содержимого.

Я новичок в cherrypy и разработке веб-интерфейса, поэтому я не уверен, в чем проблема, если мой csv пуст, файл загрузится, но если в нем есть какая-либо информация, возникает ошибка. Ниже мой код. В основном я запрашиваю базу данных и хочу отправить результаты запроса в формате csv пользователю

класс Root (объект):

def index(self, *args, **kwargs):

    return "index.html"

index.exposed = True

@cherrypy.expose

Запрос 1

def query(self, subject, grade,number,semester,year):
    db = MySQLdb.connect("localhost", "root", "xxx", "xxx")

    cursor = db.cursor()

    query="""SELECT GRADE.STUDENTID,GRADE.COURSECRN,GRADE.FINALGRADE,SEMESTER.SEMESTER,SEMESTER.YEAR FROM GRADE JOIN SEMESTER ON GRADE.COURSECRN=SEMESTER.CRN JOIN COURSE ON COURSE.CRN =SEMESTER.CRN WHERE (COURSE.SUBJECT='%s' AND COURSE.NUMBER='%s' AND SEMESTER.SEMESTER='%s' AND SEMESTER.YEAR='%s') AND (GRADE.FINALGRADE='%s') """%(subject,number,semester,year,grade)
    print('Enter query 1')
    values=(subject,number,semester,year,grade)
    print(values)

  #  grade = "\'"+ grade + "\'"     
    print(subject,number,semester,year,grade)
    cursor.execute(query)
    #cursor.execute("select * from GRADE where FINALGRADE=%s;")
    row = cursor.fetchone()

    res = []
    #while row is not None:
    c=csv.writer(open("output.csv","w"))
    for row in cursor:
        res.append(row)
        row = cursor.fetchone()
        c.writerow(row)
        json.dumps(row,indent=4)
    print(res)



    return cherrypy.lib.static.serve_file('/home/amichale/interface/output.csv','application/x-download','attachment')
...