Я использовал xlrd с python для получения данных из файла Excel, поместив файл в каталог smae с файлом python, и это сработало, но когда я сделал это с приложением фляги, которое принимает некоторые входные данные, обрабатывает их и ищет результатв файле Excel это не сработало, и произошла ошибка при отправке формы на html-странице.
app.py код файла
from flask import Flask, render_template, request
import jinja2
from math import exp
import xlrd
app = Flask(__name__)
env = jinja2.Environment()
app.jinja_env.filters['zip'] = zip
env.globals.update(zip=zip)
otis = xlrd.open_workbook("otis.xlsx")
sheet = otis.sheet_by_index(0)
portd = [sheet.cell(i,0).value for i in range(1,sheet.nrows)]
def R_value(qg, Pup, Pdn, C, k, Yg, Tup):
Ap = (qg)/(1248*C*Pup*(k/((k-1)*Yg*(Tup+460))*((Pdn/Pup)**(2/k)-(Pdn/Pup)**((k+1)/k)))**.5)
d = 1.1284*(Ap)**.5
for x in portd:
r = None
if x == d :
r = x
elif round(x,4) == round(d,4):
r = x
elif round(x,3) == round(d,3):
r = x
elif round(x,2) == round(d,2):
r = x
elif round(x,1) == round(d,1):
r = x
row = portd.index(r) + 1
tab = sheet.cell(row,0).value
for i in [1,2,3]:
if sheet.cell(row, i).value != xlrd.empty_cell.value :
return R
R = sheet.cell(row, i).value
@app.route('/')
def index():
result = False
return render_template('index.html', result=result)
@app.route('/',methods = ['POST', 'GET'])
def result():
result = True
if request.method == 'POST':
qg = float(request.form['qg'])
Pup = float(request.form['Pup'])
Pdn = float(request.form['Pdn'])
Tup = float(request.form['Tup'])
k = float(request.form['k'])
C = float(request.form['C'])
gravity = .75
R = R_value(qg, Pup, Pdn, C, k, gravity, Tup)
return render_template("index.html", R=R, qg=qg, Pup=Pup, Pdn=Pdn, Tup=Tup, k=k, C=C )
if __name__ == '__main__':
app.run(debug = True)
и произошла ошибка при отправке html-страницыbutton
builtins.ValueError ValueError: Нет в списке
File "C:\Python37\Scripts\venv\lib\site-packages\flask\app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Python37\Scripts\venv\lib\site-packages\flask\app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "C:\Python37\Scripts\venv\lib\site-packages\flask\app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Python37\Scripts\venv\lib\site-packages\flask\_compat.py", line 35, in reraise
raise value
File "C:\Python37\Scripts\venv\lib\site-packages\flask\app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "C:\Python37\Scripts\venv\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Python37\Scripts\venv\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Python37\Scripts\venv\lib\site-packages\flask\_compat.py", line 35, in reraise
raise value
File "C:\Python37\Scripts\venv\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Python37\Scripts\venv\lib\site-packages\flask\app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\A.Toba\Desktop\New folder (2)\app.py", line 58, in result
R = R_value(qg, Pup, Pdn, C, k, gravity, Tup)
File "C:\Users\A.Toba\Desktop\New folder (2)\app.py", line 31, in R_value
Open an interactive python shell in this framerow = portd.index(r) + 1