如何在python程序中获取html元素

时间:2014-03-25 16:26:27

标签: python flask

我有我的python代码,我使用的是html文件。请参阅以下代码:

@app.route('/',endpoint='buf')
def index():
    page = """
    <DOCTYPE! html>
    <html lang="en-US">
    <head>
    <title>Hello World Page</title>
    <meta charset=utf-8">
    </head>
    <body>
    <form action="/hello" method="GET">
    First: <input type="text" name="fname"><br>
    Last name: <input type="text" name="lname"><br>
    <input type="submit" value="Submit">
    </form>
    </body>
    </html>
    """   
    return page


@app.route('/hello',endpoint="new",methods=['GET'])
def login():
         return 'hello %s ' % (request.form['fname'])

这给了我一个html页面,它有一个包含两个字段和一个提交按钮的表单。我使用虚拟环境来运行它。

现在我想在程序中获取字段的名字和姓氏,这样当用户点击提交时我想显示Hello“名字”“姓氏”

目的: - 学习如何在python文件中提供代码时获取html元素值。

1 个答案:

答案 0 :(得分:2)

要使其发挥作用的几件事:

  • POSTGET添加到app.route支持的方法中:

    @app.route('/', methods=['POST', 'GET'])
    
  • 在视图中,处理GET(当用户打开网页时)和POST(当用户提交表单时)

  • 将html代码提取到html模板文件中并在视图中呈现它(docs on rendering templates

以下是带有更改的代码:

from flask import render_template
...

@app.route('/', methods=['POST', 'GET'])
def index():
    if request.method == 'POST':
        # use request.form['fname'] and request.form['lname'] 
        # to access form input values
    else:
        return render_template('index.html')

另见documentation page

希望有所帮助。