链接html,python和sql

时间:2015-05-27 14:07:44

标签: python html sql-server flask

我试图将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条件执行查询。

谢谢!

2 个答案:

答案 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