我试图将html表单与python和sql链接起来。我的要求是用户提供输入,并且应该将输入发送到某个python功能块以在MS SQL Server上执行sql语句并将结果返回给用户。请帮助链接以下代码: order.html
<html>
<form action="/order" method="POST">
<input type="text" name="month">
<input type="number" name="weekno">
<input type="submit">
</form>
The stock for {{weekno}} is xyz
</html>
order.py:
from flask import Flask,render_template
import sys
app = Flask(__name__)
@app.route('/order', method=['POST'])
def orderdb() :
# using sql server connection statement here
cursor = connection.cursor ()
cursor.execute ("select month,stock from salesdb where weeknumbr=?",weekno)
return render_template('order.html',weekno = weekno)
这是我在这里使用的示例代码,而不是粘贴完整代码。
请建议使用的语法,以便查询应从表单中获取weekno值并根据weeknumbr条件执行查询。
谢谢!
答案 0 :(得分:0)
要从表单中获取价值,在您的情况下,您应该这样做:
from Flask import request
...
weekno = int(request.form['weekno'])
我建议你阅读Flask Quickstart
答案 1 :(得分:0)
from flask import request
from flask.ext.mysqldb import MySQL
mysql = MySQL(app)
...
month, weekno = request.form['month'], request.form['weekno']
cursor = connection.cursor ()
cursor.execute ("select month,stock from salesdb where weeknumbr=?",weekno)
cursor.execute()
将返回修改或检索的行数,就像在PHP中一样。
执行SELECT查询时,每行都由Python表示。对于包含“name
”和“phone_number
”列的上述SELECT查询,您最终会得到以下内容:
['Bob', '9123 4567']
cursor.fetchall()
会返回一个包含查询结果中每一行的数组。也就是说,你得到一个数组数组。因此,上述SELECT
查询可能会为您提供:
[['Bob', '9123 4567'], ['Janet', '8888 8888']]
最简单的方法是迭代:
data = cursor.fetchall()
for row in data :
do stuff
如果要一次检索一行,也可以使用cursor.fetchone()
。当您执行仅返回单行的“SELECT COUNT(*) ...
”之类的查询时,这非常方便。
对于使用flask-mysql的简单示例,您可以阅读以下内容:
http://ianhowson.com/a-quick-guide-to-using-mysql-in-python.html
或者您可以阅读此内容以供参考 http://dev.mysql.com/doc/connector-python/en/connector-python-reference.html