烧瓶 AWS Dynamo 数据库:POST API
Flask AWS Dynamo DB : POST API
我是 DynamoDB 和 Flask 的新手,我有将记录插入 dynamo 数据库的端点,我的有效负载如下所示
{
"Address": "2013 3A New Jersey",
"Contact_Number1": "1105632",
"Contact_Number2": "1105632",
"DOB": "1968-08-12",
"Father": "FTest2",
"First_name": "FTest2",
"Gender": "Male",
"Hospital_Reg_Num": "HRM123",
"Husband": "HTest2",
"Last_name": "LTest2",
"Last_visit_date": "2017-11-12",
"Mother": "MTest2",
"patient_id": "100"
}
我的 flaska api 代码是这样的
def createPatient():
尝试:
用户 ID = request.json.get('user_id')
名字 = request.json.get('First_name')
姓氏 = request.json.get('Last_name')
性别 = request.json.get('Gender')
dob = request.json.get('DOB')
除了 KeyError:
提高 InvalidUsage('Bad Request', status_code=400)
print(request.json)
father = request.json.get('Father') if 'Father' in request.json else None
mother = request.json.get('Mother') if 'Mother' in request.json else None
husband = request.json.get('Husband') if 'Husband' in request.json else None
address = request.json.get('Address') if 'Address' in request.json else None
lastVisitDate= request.json.get('Last_visit_date') if 'Last_visit_date' in request.json else None
#create a new db entry
userData = {
'user_id': { 'N': userId },
'First_name': { 'S': firstName },
'Last_name': { 'S': lastName },
'Hospital_Reg_Num': { 'S': hospitalReg },
'Gender': { 'S': gender },
'DOB': { 'S': dob },
'Father': { 'S': father },
'Mother': { 'S': mother },
'Husband': { 'S': husband },
'Address': { 'S': address },
'Last_visit_date': { 'S': lastVisitDate }
}
resp = client.put_item(TableName='user',Item=userData)
return jsonify(resp), 200
如果在有效载荷中我错过了任何参数,比如父亲姓名,那么它不会插入其他记录,它会给我一个错误
Invalid type for parameter Item.Father.S, value: None, type: <class 'NoneType'>, valid types: <class 'str'>
你能帮我如何忽略 fatherName 以在 dynamo 数据库中插入记录?想要更新有效负载发送的任何记录
不要将缺少的参数设置为 None,而是将它们设置为空字符串。例如:
father = request.json.get(‘Father’, ‘’)
第二个参数 returns 如果找不到指定的键,则为默认值。
我是 DynamoDB 和 Flask 的新手,我有将记录插入 dynamo 数据库的端点,我的有效负载如下所示
{
"Address": "2013 3A New Jersey",
"Contact_Number1": "1105632",
"Contact_Number2": "1105632",
"DOB": "1968-08-12",
"Father": "FTest2",
"First_name": "FTest2",
"Gender": "Male",
"Hospital_Reg_Num": "HRM123",
"Husband": "HTest2",
"Last_name": "LTest2",
"Last_visit_date": "2017-11-12",
"Mother": "MTest2",
"patient_id": "100"
}
我的 flaska api 代码是这样的
def createPatient(): 尝试: 用户 ID = request.json.get('user_id') 名字 = request.json.get('First_name') 姓氏 = request.json.get('Last_name') 性别 = request.json.get('Gender') dob = request.json.get('DOB') 除了 KeyError: 提高 InvalidUsage('Bad Request', status_code=400)
print(request.json)
father = request.json.get('Father') if 'Father' in request.json else None
mother = request.json.get('Mother') if 'Mother' in request.json else None
husband = request.json.get('Husband') if 'Husband' in request.json else None
address = request.json.get('Address') if 'Address' in request.json else None
lastVisitDate= request.json.get('Last_visit_date') if 'Last_visit_date' in request.json else None
#create a new db entry
userData = {
'user_id': { 'N': userId },
'First_name': { 'S': firstName },
'Last_name': { 'S': lastName },
'Hospital_Reg_Num': { 'S': hospitalReg },
'Gender': { 'S': gender },
'DOB': { 'S': dob },
'Father': { 'S': father },
'Mother': { 'S': mother },
'Husband': { 'S': husband },
'Address': { 'S': address },
'Last_visit_date': { 'S': lastVisitDate }
}
resp = client.put_item(TableName='user',Item=userData)
return jsonify(resp), 200
如果在有效载荷中我错过了任何参数,比如父亲姓名,那么它不会插入其他记录,它会给我一个错误
Invalid type for parameter Item.Father.S, value: None, type: <class 'NoneType'>, valid types: <class 'str'>
你能帮我如何忽略 fatherName 以在 dynamo 数据库中插入记录?想要更新有效负载发送的任何记录
不要将缺少的参数设置为 None,而是将它们设置为空字符串。例如:
father = request.json.get(‘Father’, ‘’)
第二个参数 returns 如果找不到指定的键,则为默认值。