Bottle框架 Post请求 提交表单
我们通常会在一个 HTML 文件嵌入表单,通过 Post 方法,将表单数据提交给后端服务程序。
在下面的示例中,我们将表单发送到 Bottle 应用。
$ mkdir simple_form && cd simple_form $ mkdir public $ touch public/index.html simple_form.py
我们为应用创建目录和文件。
public/index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Home page</title> </head> <body> <form method="post" action="doform"> <div> <label for="name">Name:</label> <input type="text" id="name" name="name"> </div> <div> <label for="occupation">Occupation:</label> <input type="text" id="occupation" name="occupation"> </div> <button type="submit">Submit</button> </form> </body> </html>
在 HTML 文件中,我们有一个表单标签。 该表格包含两个输入字段:名称和职业。
simple_form.py
#!/usr/bin/env python3 from bottle import route, run, post, request, static_file @route('/') def server_static(filepath="index.html"): return static_file(filepath, root='./public/') @post('/doform') def process(): name = request.forms.get('name') occupation = request.forms.get('occupation') return "Your name is {0} and you are a(n) {1}".format(name, occupation) run(host='localhost', reloader=True, port=8080, debug=True)
在simple_form.py
文件中,我们提供一个表格并处理该表格。
@route('/') def server_static(filepath="index.html"): return static_file(filepath, root='./public/')
对于根路径(/),我们从public
目录提供index.html
。
@post('/doform') def process(): name = request.forms.get('name') occupation = request.forms.get('occupation') return "Your name is {0} and you are a(n) {1}".format(name, occupation)
在这里,我们处理表格。 我们使用@post
装饰器。 我们从request.forms
获取数据并构建消息字符串。
使用 static_file(),我们可以在 Bottle 中提供静态文件。$ mkdir botstat && cd botstat$ mkdir public $ touch public/h ...