数据在falcon python中传递应用程序

时间:2016-01-05 18:20:19

标签: python html api falcon

在提出问题之前,我想提一下,我知道我可以使用django来制作应用程序,但我需要使用猎鹰而不是别的。

我只是在寻找一种方法

让我们采用一个非常简单的场景,这样我就可以理解数据如何在应用程序的各个部分之间流动。

我有一个使用html的简单登录页面:

<!DOCTYPE html>
<html>
<body>

<form action="***what-do-i-put-here***">
  <fieldset>
    <legend>Personal information:</legend>
    First name:<br>
    <input type="text" name="firstname" value="Mickey">
    <br>
    Last name:<br>
    <input type="text" name="lastname" value="Mouse">
    <br><br>
    <input type="submit" value="Submit">
  </fieldset>
</form>

</body>
</html>

我在python中默认使用simpleHTTpServer运行它。

现在我创建了一个非常基本的猎鹰应用程序,只有一个响应者“on_post()”,它只回复它从表单中收到的数据,

我在localserver上使用uWsgi来托管我的猎鹰应用程序。如何使这两个不同的代码片段互相交互我的意思是在html表单中,我们在Php的情况下做的是我们在“actions”标签下定义php文件的名称。我们这样做是怎么做的隼。

一个非常简单的小工作示例非常受欢迎

1 个答案:

答案 0 :(得分:5)

这是一个有效的例子!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="http://127.0.0.1:8000" method="post">
        <input type="text" name="name">
        <button type="submit" name="btn">Submit</button>
    </form>
</body>
</html>

猎鹰代码:

import falcon
from wsgiref import simple_server

class Resource(object):
    def on_post(self, req, resp):
        resp.status = falcon.HTTP_200
        resp.body = req.params['name']

app = api = falcon.API()
app.req_options.auto_parse_form_urlencoded = True
api.add_route('/', Resource())

if __name__ == '__main__':
    http = simple_server.make_server('127.0.0.1', 8000, app)
    http.serve_forever()