我是初学者,学习FLASK。我正在创建一个应用程序,为此我创建了一个数据库模型用户,以及一个接受输入的HTML / JS表单。我想要的是使用表单信息在数据库中创建一个新条目,但我不确定如何做到这一点。我试着这样做
@app.route('/add_to_db')
def add_to_db():
email = request.form['email']
activated = 0;
user = models.User(email= email, activated = 0)
db.session.add(user)
db.session.commit()
HTML代码:
<form onsubmit="return validateEmail(document.getElementById('email').value)" action="{{ url_for("add_to_db") }}" method="post">
Please input your email adress: <input id="email">
<input type="submit">
</form>
<script>
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return(re.test(email));
}
</script>
但这给了我一个405方法不允许错误。
答案 0 :(得分:1)
405错误表示“方法不允许”。在发送表单数据时,您正在使用POST请求并需要允许POST请求。默认情况下,只允许GET请求。将行@app.route('/add_to_db')
更改为@app.route('/add_to_db', methods=['POST'])
。