【发布时间】:2018-11-30 13:29:27
【问题描述】:
我目前正在开发一个系统,其中用户名和密码的登录检查由 python 函数检查。如果登录详细信息正确,它将被重定向到个人资料页面(我将其命名为仪表板)。我的问题是,如果我的 dahsboard/profile 路由是 POST 并且还具有正确的登录详细信息,则它会重新发送一个 json。我希望这个 json 数据显示在 html 文件中。我设法做到了,但我在我的 jinja 模板中使用了变量。虽然我已经实现了我的目标(在 html 页面中显示凭据),但我希望它由 ajax 处理。我该如何做到这一点?
以下是我目前尝试过的代码(将数据传递给 jinja 变量)
@app.route('/dashboard', methods=['GET', 'POST'])
def dashboard():
if request.method == 'GET':
#get the username passed along with the redirect
data1= getdatafromdb('getdata1',(request.args.get('uname'),))[0][0]
data2= getdatafromdb('getdata2',(code,))[0]
if 'Error' in str(data2):
return jsonify({'status': 'error', 'message': data2[0][0]})
return render_template('dashboard.html', firstname=data2[1],
middleinitial=data2[2],
lastname=data2[3],
contact=data2[4],
code=data2[5],
affiliation=data2[6],
city=data2[7])
elif request.method == 'POST':
return True
return render_template('dashboard.html')
【问题讨论】:
-
我不明白你在这里做什么。为什么你的代码有时会渲染模板,有时会返回 JSON?
-
我正在使用一个 python 函数,该函数旨在调用 postgres 中的存储函数。我的 python 函数也会对所有结果进行 jsonify,因为我要通过 json 与 ajax 交谈。 @丹尼尔罗斯曼
-
但这并不能解释为什么有时会渲染模板。
-
...它的格式(我认为)让您感到困惑。返回 jsonified 对象的代码检查 data2 是否有错误。如果是这样,它会以 jsonified 格式返回错误。但如果它没有错误,它会返回一个 render_template 以及数据(名字、中间名等),这段代码在我的另一个项目上工作。但它只是一个从 json url 获取数据的 android 应用程序。这次,我在 web 应用程序上,但我并不擅长它。
标签: python json ajax flask jinja2