我正在尝试执行GET请求,该请求应根据设置的参数从数据库中打印特定行。参数应该是一门课程的名称,我希望它从所选课程中获取所有数据。将其解释为SQL查询可能会更容易一些。查询可能看起来像这样“ SELECT * FROM courselist WHERE course ='D0024E';” 那里的“课程”。
我设法完成了fetchall()并从特定表中接收了所有行,但是我没有设法使参数正常工作,因此我可以从特定课程中获取信息。
from flask import Flask
from flask import render_template
import requests
from flask import request
from flask import jsonify
import mysql.connector
app = Flask(__name__)
mydb = mysql.connector.connect(user='Mille',
auth_plugin='mysql_native_password',
password='jagheter12',
host='localhost',
database='paraplyet')
@app.route('/')
def index():
return render_template("index2.html")
@app.route('/courses', methods= ["GET"])
def getStudentInCourse():
myCursor2 = mydb.cursor()
query2 = ("SELECT * FROM paraplyet.kursinfo")
myCursor2.execute(query2)
myresult2 = myCursor2.fetchall()
return jsonify(myresult2)
if __name__ == '__main__':
app.run()
答案 0 :(得分:0)
您需要更新您的路线网址以接收参数
@app.route('/courses/<course_code>', methods= ["GET"])
def getStudentInCourse(course_code):
然后您可以使用此course_code过滤结果。
答案 1 :(得分:0)
实际上,您的代码可能会失败,这是因为在Flask中建立正确的前端后端链有些棘手(但值得一提)。 您有一个前端 HTML 代码,在该代码中,您可以使用适当的变量(例如示例中的“ course”)开始您的请求,如下所示:>
<form action="/courses" method="post">
<input>
<button type="submit"></button>
</form>
然后将Flask作为后端,会将此变量(参数)作为查询字符串的一部分作为 URL字符串的一部分。您可以采用以下形式检索此参数:
course = request.form.get('course')
要实现此目的,您必须添加视图的方法“ POST” ,因为该视图默认仅处理“ GET” -s。
@app.route('/courses', methods=["GET", "POST"])
然后,您可以在需要完成后端操作时使用此变量:
query2 = ("SELECT * FROM courseInfo where courseCode = '" + course + "';")
这些结果,然后您可以通过以下方式将其传递回前端:
return jsonify(myresult2)
您的python /烧瓶代码应如下所示:
from flask import Flask
from flask import render_template
import requests
from flask import request
from flask import jsonify
import mysql.connector
app = Flask(__name__)
mydb = mysql.connector.connect(user='Mille',
auth_plugin='mysql_native_password',
password='jagheter12',
host='localhost',
database='paraplyet')
@app.route('/')
def index():
return render_template("index2.html")
@app.route('/courses', methods= ["GET", "POST"])
def getStudentInCourse():
if request.method == "POST" and request.form.get('course') != '':
myCursor2 = mydb.cursor()
course = request.form.get('course')
query2 = ("SELECT * FROM courseInfo where courseCode = '" + course + "';")
myresult2 = myCursor2.execute(query2)
return jsonify(myresult2)
if __name__ == '__main__':
app.run()