如何使用flask将信息加载到数据库中?

时间:2016-02-03 01:31:37

标签: python html web flask http-status-code-405

尝试通过制作网络应用来自学烧瓶。我在将输入从用户发布到我的数据库时遇到问题,当我加载页面然后尝试通过我的表单提交信息时,我收到405错误:

" GET / HTTP / 1.1" 200 - ,

" POST / HTTP / 1.1" 405 -

非常感谢任何见解,谢谢。

这是python片段:

session = DBSession()

app = Flask(__name__)

@app.route('/')
def index(methods=['GET','POST']):
    print request.method
    if request.method == 'POST':
        instances = session.query(Vocab)
        newItem = Vocab(id=len(instances), word=request.form['new_word'])
        session.add(newItem)
        session.commit()
    instances = session.query(Vocab)
    return render_template('vocab_template.html', instances = instances)

html模板:



<!DOCTYPE html>
<html>
	<head>	
		<title>Vocab</title>
	</head>

	<body>
		<div>
			<h1>Words!</h1>
			<ul id='Words'>
				{% for i in instances %}
					<li>
					{{i.word}}					
					</li>
				{% endfor %}
			</ul>
			<form action="/" method="post">
				<input type="text" name='new_word'>
				<input type="submit" value="Add" name='submit'>
			</form>
		</div>
	</body>

</html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

你很亲密

@app.route('/',methods=['GET','POST'])
def index():
    print request.method
...

答案 1 :(得分:0)

该方法应该在路线中定义,而不是在视图中定义。

doc link:

  

http://flask.pocoo.org/docs/0.10/quickstart/#http-methods

doc示例:

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        do_the_login()
    else:
        show_the_login_form()