很抱歉,这必须是重复项,但是我没有找到任何帮助的方法,所以我想那一定是导入或语法问题?另外,我正在这里学习Python和HTML的速成课程,这是期末考试,所以请耐心等待。
我正在处理一项作业,该作业指定HTML页面必须使用具有GET方法的表单,并将其数据发送回原始位置“ assignment10.html”。该应用程序永远不会输入使用通过GET提交的表单的功能,而是在提交后重新加载页面(URL有查询字符串)。如果我使用POST作为形式和函数参数中的方法并使用request.form.get(),则应用程序将输入函数。如果有什么关系,我正在使用具有Ubuntu 64位的虚拟机
我进行了搜索,但是大多数答案都涉及json或ajax或某些其他软件,但是由于这是一项任务,因此我仅限于python文件和flask的模板文件夹。
我使用request.form.get()和request.args.get()在request对象上做了一些尝试,但是据我所知,这并不是障碍。我被困在这一点上,我需要知道我的错误是什么。
# assignment10.py
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/assignment10.html')
def start():
return render_template('Start.html')
@app.route('/assignment10.html', methods=['GET']) #Enters if 'POST' instead
def next():
return "Entered next()" # just to test function is entered
fname = request.args.get('fname') #change to .form.get()
lname = request.args.get('lname') # " "
# render next template
<!-- Start.html -->
<!DOCTYPE html>
<html>
<head>
<title> Assignment 10 </title>
<script>
function validate(){
<!-- if fname && lname are not blank return true else false -->
}
</script>
</head>
<body>
<!-- switch to method="POST" works -->
<form action = "assignment10.html" method="GET" onsubmit="return validate()">
Your first name:
<input type="text" name="fname" id="fname" value="First"><br>
Your last name:
<input type="text" name="lname" id="lname" value="Last"><br>
<input type="submit" value="Submit">
</form>
<div id="msg"></div>
</body>
</html>
答案 0 :(得分:3)
@app.route('/assignment10.html')
def start():
fname = request.args.get('fname') #change to .form.get()
lname = request.args.get('lname') # " "
print(fname, lname)
return render_template('./Start.html')
您只需要一条路线即可。
第一个请求fname
和lname
是None
为什么“ GET”不起作用?
@app.route('/assignment10.html', methods=['GET'])
@app.route('/assignment10.html')
两条路线相等。
由于@app.route
的默认方法是['GET']