gpt4 book ai didi

Python Flask 搜索 MySQL 数据库出现()

转载 作者:行者123 更新时间:2023-11-29 07:17:00 25 4
gpt4 key购买 nike

我开发 Python Flask 应用程序已经有一段时间了。我已经让它连接到 mysql 数据库并进行搜索,但它抛出的只是 ()。

我不确定它是否没有找到任何内容或存在错误,但数据库中有一项。

这是主 .py 文件

from flask import Flask, render_template, request, url_for, redirect, flash
from connect_script import connection

app = Flask(__name__)

@app.route("/")
def homepage():
flash("Hello")
return render_template("main.html")


@app.route('/hello/', methods=['POST'])
def hello():
error = ""
rows = None
user_input = None
data = None
try:
c, conn = connection()
if request.method == "POST":
data = c.execute("SELECT * FROM titles WHERE name='%s' ", (request.form["search"],))
user_input = (request.form["search"],)
return render_template("main.html", data=data, user_input=user_input)

except Exception as e:
error = (str(e))
return render_template("main.html", error=error, user_input=user_input)


if __name__ == "__main__":
app.run(debug=True)

此文件搜索数据库并仅提取 results.html,看起来像

<!DOCTYPE html>
<html land="en">

<head>
<meta charset="utf-8">
<title>Movie App</title>
<link href="{{ url_for('static', filename='css/style.css') }}" />
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
</head>
<body>
{{ rows }}
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>

</html>

其中 {{ rows }} 是它渲染的全部内容 () 没有别的。我一直在网上搜索试图找到答案,但到目前为止一无所获。

正在使用的表单如下所示

  <form class="navbar-form navbar-left" action="{{ url_for('hello') }}" method="POST" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search" name="search" value="{{ request.form.search }}">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>

感谢您对此提供的任何帮助!

最佳答案

您至少需要遍历光标

<ol>
{% for row in rows %}
<li> row data: {{ row }}</li>
{% endfor %}
</ol>

即便如此,它也不会很美观,因为在每次迭代中你都会得到一个元组(value_1, value_2, ...)

您可能想要使用MySQLdb.cursors.DictCursor,因为字典可能更容易在 flask 模板中使用,然后您可以使用例如{{row.column_1}} 比元组版本的 {{row[0]}} 更具可读性。

如果你仍然一无所获

您可以尝试在模板中显示与搜索匹配的行数:

Row count: {{rows.row_count}}

关于Python Flask 搜索 MySQL 数据库出现(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com