我是Flask的新手,需要完成一个数据库中至少包含两个表的项目。我已经编写了对数据库中的单个表有用的代码。现在,我也需要帮助将另一个表合并到代码中,但是我不知道如何。
@app.route('/')
def index():
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM student")
data = cur.fetchall()
cur.close()
return render_template('index.html', student=data)
@app.route('/insert', methods=['POST'])
def insert():
if request.method == "POST":
flash("Inserted Successfully!")
name = request.form['name']
email = request.form['email']
phone = request.form['phone']
cur = mysql.connection.cursor()
cur.execute("INSERT INTO student (name,email,phone) values
(%s,%s,%s)", (name, email, phone))
mysql.connection.commit()
return redirect(url_for('index'))
我需要帮助来执行与上述相同的任务,但在同一数据库中使用不同的表。
答案 0 :(得分:0)
可怕的答案,但是它可以工作,只是指向另一张表做同样的事情:
@app.route('/table2')
def table2():
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM table2")
data = cur.fetchall()
cur.close()
return render_template('table2_visualize.html', data=data)
@app.route('/insert_into_table_2', methods=['POST'])
def insert_into_table_2():
if request.method == "POST":
flash("Inserted Successfully!")
#Params for table2 here, e.g.
param1_table2 = request.form['param1']
cur = mysql.connection.cursor()
cur.execute("INSERT INTO table_2 (param1) values
(%s)", (param1_table2))
mysql.connection.commit()
return redirect(url_for('table2'))
现在,当您发布到server:port / insert_into_table_2时,它将被插入到table2(必须在sql DB中定义)
当您转到server:port / table2时,将呈现一个名为table2_visualize.html的模板(您也必须创建),该模板带有名为data的变量。
您真的不希望直接使用SQL,这就是所谓的sql注入,但是我认为可以做功课。
进一步阅读,检查MVC和ORM