【发布时间】:2014-06-24 15:47:13
【问题描述】:
我想通过在 html 输入字段中输入学生的名字来为学生的信息制作某种搜索引擎,但是我的代码有些问题。不过,我正在将 Flask 与 Python 一起使用。 这是我的 project.py 代码:
@app.route('/search', methods=['GET', 'POST'])
def search():
if request.method == "POST":
db = MySQLdb.connect(user="root", passwd="", db="cs324", host="127.0.0.1")
c=db.cursor()
c.executemany('''select * from student where name = %s''', request.form['search'])
for r in c.fetchall():
print r[0],r[1],r[2]
return redirect(url_for('search'))
return render_template('search.html')
这是我的 search.html 代码:
{% extends "hello.html" %}
{% block content %}
<div class="search">
<form action="" method=post>
<input type=text name=search value="{{ request.form.search}}"></br>
<div class="actions"><input type=submit value="Search"></div>
</form>
</div>
{% for message in get_flashed_messages() %}
<div class=flash>
{{ message }}
</div>
{% endfor %}
{% endblock %}
当我点击搜索按钮时没有任何反应,我检查了数据库中是否有一些数据,所以它不是空的,我找不到我在哪里犯了错误,请帮忙?
【问题讨论】:
-
您检查浏览器的错误控制台了吗?如果在地址栏中输入
<your_hostname>/search会发生什么? -
是的,我什至尝试放置 app.run(debug=True) 但它没有显示任何内容,看起来它只是刷新了 search.html 页面。
-
@SrdjanRistic 单击按钮时,您是否在 Web 应用访问日志中看到任何条目?它声明了什么网址?然后,如果它到达您期望的 url。
-
它显示:localhost:5000/search 就是这样。当我删除重定向到搜索页面时,它仍然会做同样的事情......
-
我建议你不要在视图中使用连接相关人员,而是单独为db连接创建一个方法并在应用程序生命周期中保持它,你可以使用flask-sqlalchemy来处理数据库相关的事情