1

从 Flask 中的数据获取时,我可以在不使用 Jinja 模板的情况下以某种方式将 html 元素及其值绑定到对象吗?

还是我必须通过手动 HTTP Post 发送数据?

4

2 回答 2

1

我认为你真正要问的是“给定一个客户端 JavaScript 对象,我如何序列化它以便我可以轻松地访问数据服务器端”。如果这是您的问题,有两种方法可以做到:

  1. 您在答案中提供的方式,将您的对象序列化为 JSON 并将其作为 POST 请求的正文提交:

    @app.route("/user", methods=("POST",))
    def save_user():
        data = request.get_json()
        # ... etc. ...
    
  2. FormData在客户端使用:

    var yourUser = {
        firstname: "Joe",
        lastname: "Smith",
        email: "joe@smith.com",
        password: "12345"
    };
    
    var formData = new FormData();
    Object.keys(yourUser).forEach(function(key) {
        formData.append(key, yourUser[key]);
    });
    // Post formData back to your controller using XHR
    

    结合request.form服务器端的正常访问:

    @app.route("/user", methods=("POST",))
    def save_user():
        data = request.form
        # ... etc. ...
    
于 2013-11-07T02:11:37.990 回答
0

用这个解决问题

@app.route('/post/user',methods=['POST','GET'])
def saveuser():
 data = json.loads(request.data)
 firstname = data['firstname']
 newuser = User(firstname,lastname,email,password)

 db.session.add(newuser)
 db.session.commit()

首先我从 request.data 中获取 json 字符串,然后我将其解析为一个字典并将其保存到我的数据库中

于 2013-11-06T07:30:45.657 回答