Flask 之 get和post请求

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请求示例:


    
    登录


    
用户名:
密码:
  • get请求示例:



    
    首页


    跳转到搜索页面


  • 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请求)