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

Python 如何使用flask将信息加载到数据库中?,python,html,web,flask,http-status-code-405,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 requ

试图通过制作一个网络应用来自学。我无法将用户的输入发布到我的数据库,当我加载页面,然后尝试通过我的表单提交信息时,我收到以下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模板:


沃卡布
话!

{%i在实例%}
  • {{i.word}}
  • {%endfor%}
    你们非常接近

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

    该方法应在route中定义,而不是在view函数中定义

    文档链接:

    文档示例:

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

    请不要在此处手动增加
    id
    Vocab(id=len(实例)…
    。删除条目时,此方法将失败!您的数据库可能会处理此增量。请在不使用该关键字的情况下尝试:
    Vocab(word=request.form['new\u word'])
    @Wombatz如果这是一个问题,它将引发一个异常而不是405,对吗?我认为问题在于方法的定义(参见Joran Beasley的答案)。不过,解决此问题后,Nali可能会遇到id增量问题。不过,这是一个好问题。@Aaron是的,这只是一个旁注。当我发表评论时,已经有了正确的答案,所以我没有明确说明,我的评论不是解决方案。我的bad@Wombatz不不,我真的很感激,因为我错过了first,我从你的评论中学到了一些东西。@Aaron非常感谢。之前我不知道,但因为你的评论,我查阅了自动递增法。这使生活变得更加轻松。