POST
请求如下所示:
import pytest
def test_signup(client, app):
assert client.get("/auth/signup").status_code == 200
response = client.post("/auth/signup", data={"email": "user@example.com", "password": "12345"})
assert "http://localhost/auth/signin" == response.headers["Location"]
蓝图路线中的代码:
@bp.route('/signup', methods=['GET', 'POST'])
def signup():
form = SignupForm()
if form.validate_on_submit():
user = User(email=form.email.data)
user.set_password(form.password.data)
db.session.add(user)
db.session.commit()
flash('Congratulations, you are now a registered user!')
return redirect(url_for('auth.signin'))
return render_template('auth/signup.html', title='Sign up', form=form)
创建为:
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
from app.auth import bp as auth_bp
app.register_blueprint(auth_bp, url_prefix='/auth')
return app
代码在浏览器中工作,但在测试中出现以下错误:
失败的测试/test\u auth.py::test\u signup-werkzeug.exceptions.BadRequestKeyError:400错误请求:浏览器(或代理)发送了此服务器无法理解的请求
我想
form.validate_on_submit()
退货
False
,但我不明白为什么。