使用Flask获取表单数据

时间:2013-11-06 06:47:01

标签: python flask

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

或者我是否必须通过手动HTTP Post发送数据?

2 个答案:

答案 0 :(得分: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. ...
    

答案 1 :(得分: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字符串,然后将其解析为dict并将其保存到我的db