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

标签 javascript python post aws-lambda request

语境:
我正在尝试从 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/

相关文章:

javascript - teleport-controls 在 VR 模式下的 Aframe 0.8.2 下不起作用

javascript - 使用 getInitialProps 保护路由 - Next.js

javascript - 调度具有不同签名的函数

Python正则表达式用\W分割

Python-替换 pandas 数据框中的负无穷大值

php - REST API : Request body as JSON or plain POST data?

post - Docker - 如何在启动后自动在 REST 容器上发布请求?

javascript - 在 componentDidMount 中异步获取后更改/处理数据

forms - 表单提交按钮在 Bootstrap 模式窗口中不起作用

python - 为给定的键函数生成所有可能的等价排序