从Flask中的数据获取时,我可以以某种方式将html元素及其值绑定到对象而不使用Jinja模板。
或者我是否必须通过手动HTTP Post发送数据?
答案 0 :(得分:1)
我认为你真正要问的是“给定一个客户端JavaScript对象,我如何序列化它以便我可以轻松访问数据服务器端”。如果这是您的问题,有两种方法可以做到:
您在答案中提供的方式,将对象序列化为JSON并将其作为POST请求的正文提交:
@app.route("/user", methods=("POST",))
def save_user():
data = request.get_json()
# ... etc. ...
在客户端使用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