我正在尝试创建一个将表单输入保存为URL查询的表单。但是,当我按下表单的提交按钮时,我不知道为什么会发生这种情况。我确定它与redirect()或我的表单有关。
site.py
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def index():
return render_template("about.html")
@app.route('/hobbies/')
def blog():
return render_template("hobbies.html")
@app.route('/about/')
def about():
return render_template("about.html")
@app.route('/projects/', methods=['GET', 'POST'])
def projects():
return render_template("projects.html")
@app.route('/dress')
def dress():
return render_template("dress.html")
@app.route('/dress', methods=['GET', 'POST'])
def my_form_post():
min_bust = request.form['min_bust']
max_bust = request.form['max_bust']
min_waist = request.form['min_waist']
max_waist = request.form['max_waist']
min_length = request.form['min_length']
max_length = request.form['max_length']
return redirect(url_for('/dress/',
min_bust=min_bust,
max_bust=max_bust,
min_waist=min_waist,
max_waist=max_waist,
min_length=min_length,
max_length=max_length), code=302)
@app.route('/base/')
def base():
return render_template("base.html")
@app.errorhandler(404)
def page_not_found(e):
return render_template("404.html"), 404
@app.errorhandler(500)
def internal_server_error(e):
return render_template('500.html'), 500
if __name__ == '__main__':
app.run(debug=True)
dress.html:
{% extends "base.html" %}
{% block title %}Dress Finder{% endblock %}
{% block menu %}
<div class="menu">
<a href="http://localhost:5000/hobbies/"><div class="button">Hobbies</div></a>
<a href="http://localhost:5000/about/"><div class ="button"> Katie</div></a>
<a href="http://localhost:5000/projects/"><div class="button" id="current_page">Projects</div></a>
</div>
{% endblock %}
{% block content %}
Dress Finder
<br><br><br>
Input desired Bust/Waist/Length measurements in inches and Dress Finder does the rest.
<br><br>
<form action="/dress" method="POST">
<input type="text" name="min_bust" placeholder="Min Bust Size" class="input">
to <input type="text" name="max_bust" placeholder="Max Bust Size" class="input">
<br><br>
<input type="text" name="min_waist" placeholder="Min Waist" class="input">
to <input type="text" name="max_waist" placeholder="Max Waist" class="input">
<br><br>
<input type="text" name="min_length" placeholder="Min Length" class="input">
to <input type="text" name="max_length" placeholder="Max Length" class="input">
<br><br>
<input type="submit" name="my-form" value=" submit " class="prettyButton">
</form>
{% endblock %}
答案 0 :(得分:11)
你需要改变这个:
from flask import Flask, render_template, request
到此:
from flask import Flask, render_template, request, redirect
redirect
是Flask库提供的函数调用,但您必须将其导入此文件才能使用。一般情况See this。