gpt4 book ai didi

javascript - 从 Python Lambda 中的 POST 请求中提取参数

转载 作者:行者123 更新时间:2023-12-03 21:12:23 25 4
gpt4 key购买 nike

语境:
我正在尝试从 JavaScript 向用 python 编写的 AWS lambda 函数发出 POST 请求。然后,我会将 POST 请求中的信息输入到数据库中。
问题:
我似乎无法弄清楚如何从 POST 请求中获取信息。并将其存储到变量中。
我尝试使用在 AWS 提供的测试模拟中有效的 event['Username'],尽管实际上并没有。

<form method="POST" action="https://fake.execute-api.us-east-1.amazonaws.com/Prod/RegisterUser">
<label for="Username">Username:</label><br>
<input type="text" id="Username" name="Username" value=""><br>
<label for="password">Password:</label><br>
<input type="text" id="Password" name="Password" value=""><br><br>
<input type="submit" id="submit" value="Submit" >
</form>
POST /Prod/RegisterUser HTTP/1.1
Host: fake.execute-api.us-east-1.amazonaws.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 24
Connection: close
Upgrade-Insecure-Requests: 1

Username=jat&Password=sa
import pymysql
import json

#endpoint = 'fake.us-east-1.rds.amazonaws.com'
#username = 'admin'
#password = 'admin'
#database_name = 'fake'

#connection
#connection = pymysql.connect(endpoint, user=username, passwd=password, db=database_name)

def lambda_handler(event, context):

user = event['Username']
password = event['Password']

return {
"Username": user,
"Password":password
}

最佳答案

您的 HTTP 正文将通过 lambda 作为 event['body'] .
另外,我认为您需要使用 json.loads 解析正文的 JSON 字符串。 .
最后,我看到您的 HTML 正在执行 GET方法,你可能想解决这个问题:

<form method="POST" action="https://fake.execute-api.us-east-1.amazonaws.com/Prod/RegisterUser">

无服务器是 lambda 函数的绝佳资源。以下是他们可能适用于您的案例的示例:
https://github.com/serverless/examples/blob/master/aws-python-rest-api-with-dynamodb/todos/create.py

关于javascript - 从 Python Lambda 中的 POST 请求中提取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62939598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com