如何让 Flask-Admin 接受 JSON 来创建记录

How to allow Flask-Admin to accept JSON for record creation

我想知道是否可以将 Flask-Admin 与 python requests 库结合使用,通过脚本在数据库中创建新记录。一个例子是这样的:

import requests

new_userdata = {'username': 'testuser', 'confirmed_at': None, 'login_count': 0, 'last_login_at': None, 'active': False, 'password': 'password', 'current_login_ip': None, 'last_login_ip': None, 'current_login_at': None, 'email': 'test@test.com'}

url = "http://localhost:5000/admin/user/new/"

r = requests.post(url, data=new_userdata, headers={"content-type":"application/json")

我已经试过了, 成功地在数据库中创建了一条新的 user 记录,但是记录中的所有字段都是 null .是否需要更改配置设置以允许这种行为?我无法在讨论这种用法的 Flask-Admin 文档中找到。

您发送的是表单数据,但您还说内容类型是 JSON。如果您实际上要发送 JSON 数据,则需要调用 json.dumps,或者传递 json= 而不是 data=。只需删除 header 并发送表单数据,因为它显然足以处理您发送的数据并且 Flask-Admin 可以识别它。