【发布时间】:2015-08-06 03:35:03
【问题描述】:
基本上在这个应用程序中,我连接到我的 sql 数据库并尝试检索用户给出的输入结果,这些输入是 AGE、SEX 和 ADMITTING DIAGNOSIS CODE。我能够为 AGE 和 SEX 提供用户输入并获得所需的结果,但是当我为 ADMITTING_DIAGNOSIS_CODE 提供用户输入时,它返回 400 BAD REQUEST。
我的 Python 代码:
import MySQLdb
from flask import Flask, render_template, request
from flask.ext.mysqldb import MySQL
app = Flask(__name__)
db = MySQLdb.connect("127.0.0.1","root","","health" )
@app.route("/", methods = ['GET','POST'])
def home():
return render_template('home.html')
@app.route("/value", methods = ['GET','POST'])
def Authenticate():
cursor = db.cursor()
AGE = request.form['AGE']
SEX = request.form['SEX']
ADMITTING_DIAGNOSIS_CODE = request.form['ADMITTING_DIAGNOSIS_CODE']
#DIAGNOSIS_CODE_1= request.args['DIAGNOSIS_CODE_1']
sql = 'select avg(LENGTH_OF_STAY),avg(TOTAL_CHARGES),(select count(*) from health where AGE = 3 and SEX = 1 and ADMITTING_DIAGNOSIS_CODE = %s and DISCHARGE_STATUS = "A")/(count(*))*100 as alive,(select count(*) from health where AGE = 3 and SEX = 1 and ADMITTING_DIAGNOSIS_CODE = 5849 and DISCHARGE_STATUS = "B")/(count(*))*100 as dead from health where AGE = 3 and SEX = 1 and ADMITTING_DIAGNOSIS_CODE = 5849'
entries = []
cursor.execute(sql,(ADMITTING_DIAGNOSIS_CODE))
# Fetch all the rows in a list of lists.
results = cursor.fetchall()
for row in results:
entries.append(dict([('avg(LENGTH_OF_STAY)',row[0]),
('avg(TOTAL_CHARGES)',row[1]),
('dead',row[3]),
('alive',row[2])
]))
return render_template('show_entries.html', entries=entries)
if __name__ == "__main__":
app.debug = True
app.run()
我的 HTML 代码:
**
> <form action="/value" method="post" enctype ="multipart/form-data">
> <div>Enter the Age <input type="text" name="AGE" style="border: 1px
> solid black"></div> <div>Enter the Sex <input type="text" name="SEX"
> style="border: 1px solid black"></div> <div>Enter the code <input
> type="text" name="ADMITTING_DIAGNOSIS_CODE" style="border: 1px solid
> black"></div> <div><input type="submit" value=" GO"></div> </form>
**
请帮帮我。
【问题讨论】:
-
你能粘贴 urlencoded POST 吗?如果它不是现成的,您可能可以从您使用的任何浏览器中的“开发人员工具”之类的东西中获得它。通常类似于该视图中的“网络”标签。
-
我无法理解你在问什么。你到底需要什么?
-
我在询问发送到服务器的实际 POST 数据,但我很确定这不是必需的。
-
对于这类事情,检查日志以了解导致 400 错误的原因非常有帮助,顺便说一句。服务器上的某处应该有一个堆栈跟踪。添加逗号有帮助吗?