【发布时间】:2014-03-08 12:02:44
【问题描述】:
我正在开发一个烧瓶注册表,我收到一个错误:
error 405 method not found.
代码:
import os
# Flask
from flask import Flask, request, session, g, redirect, url_for, abort, \
render_template, flash, Markup, send_from_directory, escape
from werkzeug import secure_filename
from cultura import app
# My app
from include import User
@app.route('/')
def index():
return render_template('hello.html')
@app.route('/registrazione', methods=['POST'])
def registration():
if request.method == 'POST':
username= request.form.username.data
return render_template('registration.html', username=username)
else :
return render_template('registration.html')
registration.html:
<html>
<head> <title>Form di registrazione </title>
</head>
<body>
{{ username }}
<form id='registration' action='/registrazione' method='post'>
<fieldset >
<legend>Registrazione utente</legend>
<input type='hidden' name='submitted' id='submitted' value='1'/>
<label for='name' >Nome: </label>
<input type='text' name='name' id='name' maxlength="50" /> <br>
<label for='email' >Indirizzo mail:</label>
<input type='text' name='email' id='email' maxlength="50" />
<br>
<label for='username' >UserName*:</label>
<input type='text' name='username' id='username' maxlength="50" />
<br>
<label for='password' >Password*:</label>
<input type='password' name='password' id='password' maxlength="50" />
<br>
<input type='submit' name='Submit' value='Submit' />
</fieldset>
</form>
</body>
</html>
当我访问localhost:5000/registrazione 时,我收到错误消息。我做错了什么?
【问题讨论】:
-
methods=['POST']与if request.method == 'POST': (...) else:完全不兼容 -
所以。您收到一个方法不允许错误,并且您正在对声明为仅接受
POST的路由执行GET请求。你现在明白为什么了吗? -
是的,我添加了 @app.route('/registrazione', methods=['GET', 'POST']) 但现在我收到错误 500 Internal Server Error
-
可能是因为
{{ username }}没有定义,但是你有日志,所以你应该知道。 -
我认为
username.data 是错误的。只需使用username = request.form.username就可以了。