【问题标题】:python flask bucketlist apppython烧瓶桶列表应用程序
【发布时间】:2016-08-04 04:14:53
【问题描述】:

我正在尝试使用教程构建一个 python 烧瓶网络应用程序,但我在实现我的 signUp 方法时遇到了麻烦。 教程:http://code.tutsplus.com/tutorials/creating-a-web-app-from-scratch-using-python-flask-and-mysql--cms-22972

点击“注册”按钮时出现 500 错误:_name = Request.form['inputName'] TypeError:“cached_property”对象没有属性“getitem

不知道为什么我会收到 500 错误。任何帮助,将不胜感激。谢谢

下面是我的python代码:

from flask import Flask, render_template, json, Request

app = Flask(__name__)

@app.route('/main')
def main():
    return render_template('index.html')


@app.route('/showSignUp')
def showSignUp():
    return render_template('signup.html')


@app.route('/signUp',methods=['POST'])
def signUp():
    _name = Request.form['inputName']
    _email = Request.form['inputEmail']
    _password = Request.form['inputPassword']

    if _name and _email and _password:
        return json.dumps({'html':'<span>All fields good !!</span>'})
    else:
        return json.dumps({'html:':'<span>Enter the required fields</span>'})



if __name__ == "__main__":
    app.run(debug=True)

这里是 javascript ajax 代码:

$(function () {
    $('#btnSignUp').click(function () {
        $.ajax({
            url: '/signUp',
            data: $('form').serialize(),
            type: 'POST',
            success: function(response) {
                console.log(response);
            },
            error: function(error) {
                console.log(error);
            }
        });
    });
});

这里是 signup.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Python Flask Bucket List App</title>

        <link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet" />
        <link href="http://getbootstrap.com/examples/jumbotron-narrow/jumbotron-narrow.css" rel="stylesheet" />
        <link href="../static/signup.css" rel="stylesheet" />
        <script src="../static/js/jquery-3.1.0.js"></script>
        <script src="../static/js/signUp.js"></script>

    </head>

    <body>

        <div class="container">
            <div class="header">
                <nav>
                    <ul class="nav nav-pills pulls-right">
                        <li role="presentation"><a href="main">Home</a></li>
                        <li role="presentation"><a href="#">Sign In</a></li>
                        <li role="presentation" class="active"><a href="#">Sign Up</a></li>
                    </ul>
                </nav>
                <h3 class="text-muted">Python Flask App</h3>
            </div>

            <div class="jumbotron">
                <h1>Bucket List App</h1>
                <form class="form-signin">
                <label for="inputName" class="sr-only">Name</label>
                <input type="name" name="inputName" id="inputName" class="form-control" placeholder="Name" required autofocus />
                <label for="inputEmail" class="sr-only">Email address</label>
                <input type="email" name="inputEmail" id="inputEmail" class="form-control" placeholder="Email address" required autofocus />
                <label for="inputPassword" class="sr-only">Password</label>
                <input type="password" name="inputPassword" id="inputPassword" class="form-control" placeholder="Password" required />

                <button id="btnSignUp" class="btn btn-lg btn-primary btn-block" type="button">Sign up</button>
            </form>
            </div>

            <footer class="footer">
                <p>&copy; Company 2016</p>
            </footer>

        </div>
    </body>
</html>

【问题讨论】:

  • 你能分享&gt;&gt; print(type(cached_property))吗? Flask 有很好的调试界面
  • @dhuenecke ,嗨 dhuenecke,我正在学习相同的教程,并且在注册方法方面也遇到了问题。单击按钮后它确实没有反应,我认为可能是 jQuery 没有安装或放置正确。你能告诉我你是如何实现你的jQuery的吗?谢谢。

标签: python ajax flask


【解决方案1】:

我最近在实施同样的问题时也遇到了同样的问题。

在 app.py 中更改您的注册代码,包括导入。

from flask import Flask, render_template, json, request

def signUp():
    _name = request.form['inputName']
    _email = request.form['inputEmail']
    _password = request.form['inputPassword']

注意:应该是request 而不是Request


出现此错误是因为Request 是 Fl​​ask 用来表示传入请求的类;然而,它不是请求本身。相反,Flask 将当前请求(Request 类的一个实例)存储在 request 变量中。

【讨论】:

  • 感谢@Marlon 和 Rushy。将请求更改为请求效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多