美文网首页
Flask 之 get和post请求

Flask 之 get和post请求

作者: 劉戦軍 | 来源:发表于2018-03-22 10:00 被阅读2944次

get和post请求:

  • 从两个方面入手get和post请求
  1. get请求:

    • 使用场景: 如果只是对服务器获取数据, 并没有对服务器产生任何影响,那么这时候使用get请求
    • 传参: get请求传参是放在url中,并且是通过?的形式来指定key和value的。
  2. post请求:

    • 使用场景:如果要对服务器产生影响,那么使用post请求。
    • 传参: post请求传参不是放在url中,是通过form data的形式发送给服务器的。

get和post请求获取参数:

  1. get请求是通过flask.request.args来获取。
  2. post请求是通过flask.request.form来获取。
  3. post请求在模板中要注意几点:
    • input标签中, 要写那么来表示这个value的key, 方便后台获取。
    • 在写form表单的时候, 要指定method=post, 并且要指定action='/login/'
  4. 示例代码:
  • post请求示例:
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
    <form action="{{ url_for('login') }}" method="post">
        <table>
            <tbody>
                <tr>
                    <td>用户名: </td>
                    <td><input type="text" placeholder="请输入用户名" name = 'username'></td>
                </tr>
                <tr>
                    <td>密码: </td>
                    <td><input type="text" placeholder="请输入密码" name = 'password'></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" value="登录"></td>
                </tr>
            </tbody>
        </table>
    </form>
</body>
</html><!DOCTYPE html>
  • get请求示例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <a href="{{ url_for('search', q='hello') }}">跳转到搜索页面</a>
</body>
</html>
  • request接口调用方式:
from flask import Flask, render_template, request

app = Flask(__name__)


@app.route('/index/')
def index():
    return render_template('index.html')

@app.route('/search/')
def search():
    # arguments
    condition = request.args.get('q')
    return '用户提交的查询参数是: {}'.format(condition)

# 默认的试图函数, 只能采用get请求
# 如果你想采用post请求,那么要写明
@app.route('/login/', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':

        return render_template('login.html')
    else:
        username = request.form.get('username')
        password = request.form.get('password')
        print('username: {}, password: {}'.format(username, password))
        return 'name = {}, password = {}'.format(username, password)


if __name__ == '__main__':
    app.run(debug=True, host='127.0.0.1', port=8081)

相关文章

网友评论

      本文标题:Flask 之 get和post请求

      本文链接:https://www.haomeiwen.com/subject/tjbooxtx.html