Flask中如何简便从Request中提取请求的参数值

来源:互联网 发布:戴尔游匣7557优化教程 编辑:程序博客网 时间:2024/06/05 22:41

引言: Flask是Python非常著名的微服务Web框架,但是其并未提供简便的从Request中提取参数的方式,本文将介绍一种简便的方式。

1.  Flask-Request-Params

   来自第三方的Flask插件,方便从Request中提取相应的参数值。

2.  安装步骤

   首先确认系统中已经按照了pip, 如果您还不知道什么pip的话,还请直接问问度娘即可。

   >> pip install flask-request-params  

[root@xxxx]# pip install flask-request-paramsCollecting flask-request-params  Downloading http://mirrors.aliyun.com/pypi/packages/33/14/f41ab27df8d0c59ddfe5063a5bdfcb687174e7573eac62ded2f758b7447f/Flask-request-params-0.3.0.tar.gzBuilding wheels for collected packages: flask-request-params  Running setup.py bdist_wheel for flask-request-params ... done  Stored in directory: /root/.cache/pip/wheels/f6/31/ef/c20696a93be9b3472ef70a5774cac5cfe3959dc7623f4f6a04Successfully built flask-request-paramsInstalling collected packages: flask-request-paramsSuccessfully installed flask-request-params-0.3.0
 检查一下pip是否安装成功:

 >> pip show flask-request-params

[root@xxxx]# pip show flask-request-paramsName: Flask-request-paramsVersion: 0.3.0Summary: Flask-request-params provides Rails-like interface to HTTP Request Parameters for Flask.Home-page: https://github.com/bluele/flask-request-paramsAuthor: blueleAuthor-email: jksmphone@gmail.comLicense: MITLocation: /opt/python36env/lib/python3.6/site-packagesRequires: 
3.  如何使用?

  客户端代码:

$ curl -X POST http://localhost:5000/echo/user -d 'user[name]=john&user[password]=pass'{  "path": "user",  "user": {    "name": "john",    "password": "pass"  }}# support array type$ curl -X POST http://localhost:5000/echo/lang -d 'languages[]=python&languages[]=golang'{  "path": "lang",  "languages": [    "python",    "golang"  ]}# support strong_parameters$ curl -X POST http://localhost:5000/user -d 'user[name]=bluele&user[password]=password'{  "name": "bluele",  "password": "password"}
服务端代码:

from flask import Flask, request, render_template, jsonifyfrom flask_request_params import bind_request_paramsapp = Flask(__name__)app.secret_key = 'secret'# bind rails like params to request.paramsapp.before_request(bind_request_params)# just return request.params@app.route('/echo/<path>', methods=['GET', 'POST'])def echo(path):    return jsonify(request.params)@app.route('/user', methods=['POST'])def create_user():    user = request.params.require('user').permit('name', 'password')    # do something    return jsonify(user)# serve at localhost:5000app.run(debug=True)
核心的代码方法是:  request.params.require('xx").permit(),以及, request.params方法

 url地址中的参数,以参数的形式传递进入处理函数体之内。

4.  如何获取GET请求中的params?

from flask import request@app.route('/data')def data():    # here we want to get the value of user (i.e. ?user=some-value)    user = request.args.get('user')    param_str = request.query_string
5.  总结

  这里列举了三种方式方法来获取Http Request中的参数处理过程,综合来说,还是非常简单易用的。

0 0
原创粉丝点击