我有一个Python脚本,它使用Flask Web框架让用户提出问题并根据某些问题,应用程序应该向用户提出一些问题第二个网页。对问题的回答将根据问题进行评估并显示在初始网页上。Python烧瓶render_template返回HTML脚本,而不是重定向到HTML页面
model.py
### Importing Flask ###
from flask import Flask, render_template, request, session, redirect, url_for
### Initializing Flask ###
app = Flask(__name__)
@app.route('/')
def index():
return render_template('init.html')
@app.route('/handle_data', methods = ['POST', 'GET'])
def handle_data():
### User Inputs Question ###
userQuestion = request.form['userQuestion']
def model():
message = "Depends on User"
if message == "Depends on User":
return render_template('user_information.html', userQuestion = userQuestion)
else:
message = "Your answer is ABC."
return message
message = model()
return render_template('init.html', userQuestion = userQuestion, message = message)
@app.route('/user_information', methods = ['POST', 'GET'])
def user_information():
userLevel = request.form['userLevel']
userDOJ = request.form['userDOJ']
userType = request.form['userType']
message = "Answer for Eligibility."
return render_template('init.html', userLevel = userLevel, userDOJ = userDOJ, userType = userType, message = message)
if __name__ == '__main__':
app.run()
这是我的两个HTML文件:
init.html(初始网页)
<!DOCTYPE html>
<html>
<head>
<title>Human Resources</title>
<!-- for-mobile-apps -->
</head>
<body>
<div class="main">
<div class="w3_agile_main_grid">
<h2>Human Resource Portal</h2>
<br>
<p>Hi</p>
<form action="{{ url_for('handle_data') }}" method="post" class="agile_form">
<input type="text" name="userQuestion" placeholder="Ask your question..." required="">
<input type="submit" value="Submit">
</form>
<p>{{ message }}</p>
</div>
</div>
</body>
</html>
user_information.html(第二网页)
当我执行我的脚本并输入一个问题时,我得到的是user_information.html的HTML代码作为我的答案,这不是我想要的。
输出继电器后,我点击提交: https://ibb.co/cwhRpk
预计输出后,我点击提交: https://ibb.co/c7CFh5
我可以得到所需的输出,如果我删除模型()构建但会使我的代码效率低下,因为在我的实际应用程序中,我必须使用不同的参数多次调用model()。
任何人都可以请建议我应该采取什么方法?我完全陷入这部分。谢谢,任何帮助表示赞赏!
与问题无关,但我认为重定向到'user_information()'处理程序更合理,而不是在一个处理程序中呈现不同的模板。 – Juggernaut
@Juggernaut引发值错误 - View函数没有返回响应。 –