Python 使用变量flask的Mysql查询

Python 使用变量flask的Mysql查询,python,mysql,flask,sqlalchemy,Python,Mysql,Flask,Sqlalchemy,有人能帮我吗? 我是一名新程序员,对于一个小项目,我需要为flask中数据库中的每个用户创建一个配置文件页面 @app.route("/idpage/<int:page_id>", methods=['GET', 'POST']) def profilepage(page_id): profile=engine.execute("SELECT username,password FROM tutorial WHERE id=" +page_id+ "").fetchall()

有人能帮我吗? 我是一名新程序员,对于一个小项目,我需要为flask中数据库中的每个用户创建一个配置文件页面

@app.route("/idpage/<int:page_id>", methods=['GET', 'POST'])
def profilepage(page_id):
    profile=engine.execute("SELECT username,password FROM tutorial WHERE id=" +page_id+ "").fetchall()
    return render_template('viewprofile.html', profile=profile)

这是我的第二个“程序”,我能找到一些使用sql的文档吗?

您永远不应该通过直接向查询中插入用户输入来生成查询。这将为你打开通往成功的大门。相反,您应该使用


请注意,绑定符号因驱动程序而异,但通常是
%s

中的一个。好的,它总是
%s
%(名称)s
,而从不
%d
(甚至不包括数字)。我只使用了
s
,但我不确定一些驱动程序是否接受了其他驱动程序。我更新了答案。谢谢。我相信你在
%s
上说的是对的,那是我刚开始使用SQLAlchemy时遇到的问题。不过,这种做法是正确的+1虽然原则上这个答案比我的好得多(我很高兴承认这一点),但我认为它对于一个编码新手(不仅仅是Python)来说太简洁了。我建议你也给他一条底线,不要不必要地混淆他。因为你才刚刚开始:烧瓶上的选择不错,MySQL上的选择不太好。使用Postgres。这是一个更好的数据库,它没有那么奇怪的陷阱。
TypeError: cannot concatenate 'str' and 'int' objects
engine.execute("SELECT username, password FROM tutorial WHERE id = ?", page_id)