从 Flask 中的数据获取时,我可以在不使用 Jinja 模板的情况下以某种方式将 html 元素及其值绑定到对象吗?
还是我必须通过手动 HTTP Post 发送数据?
我认为你真正要问的是“给定一个客户端 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. ...
用这个解决问题
@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 字符串,然后我将其解析为一个字典并将其保存到我的数据库中