gpt4 book ai didi

python - FLASK - 第 1 行 '%(site_id)s' 附近的 SQL 语法有错误

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

我想对 Flask 做一些简单的解释,有些我不明白的地方。我正在寻找通过 ID 从数据库获取数据。 ID是我的路由参数。我已经创建了我的路线,但我遇到了错误,而且我不明白他们实际上要求什么?来自数据库的元素?

mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%(site_id)s' at line 1

我的路线代码:

    #Construct app
app = Flask(__name__)
app.config.from_object('config')
app.config.from_object('secret_config')

#Database functions
def connect_db () :
g.mysql_connection = mysql.connector.connect(
host = app.config['DATABASE_HOST'],
user = app.config['DATABASE_USER'],
password = app.config['DATABASE_PASSWORD'],
database = app.config['DATABASE_NAME']
)

g.mysql_cursor = g.mysql_connection.cursor()
return g.mysql_cursor

def get_db () :
if not hasattr(g, 'db') :
g.db = connect_db()
return g.db

@app.teardown_appcontext
def close_db (error) :
if hasattr(g, 'db') :
g.db.close()



@app.route('/historique/<int:site_id>')
def historique(site_id):

db = get_db()

db.execute('SELECT * FROM sites s JOIN historique h ON h.site_id WHERE `s.site_id = %(site_id)s', {'id': site_id})

entries = db.fetchall()
return render_template('historique.html', entries = entries)

这是我的 HTML 代码

{% extends 'layout.html' %}

{% block titre %}
Acceuil
{% endblock %}

{% block body %}
<h1>Historique d'activité pour {{ entrie.0 }}</h1>
{% for entrie in entries %}
{% endfor %}
{% endblock %}

我只喜欢了解。非常感谢您的帮助。

最佳答案

我认为,当您使用 sql 查询格式化字符串时,您犯了一个错误。试试这个

@app.route('/historique/<int:site_id>')
def historique(site_id):
db = get_db()
query = 'SELECT * FROM sites s JOIN historique h ON h.site_id WHERE `s.site_id = {site_id}'.format(site_id=site_id)
db.execute(query)
# ... rest of the code ...

是的,s.site_id 之前的反引号非常可疑

关于python - FLASK - 第 1 行 '%(site_id)s' 附近的 SQL 语法有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50030447/

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