python代码,微型框架flask如何响应请求?如何获取参数?
发布于 作者:苏南大叔 来源:程序如此灵动~
python
也是可以用于httpserver
的,其中比较简单的方式就是flask
。如果对应到nodejs
上的话,对标的就是express
框架。那么,作为www容器的最基本功能,就是响应get
或者post
请求,并且获得参数,这也是本文中要讨论的问题。
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述python
的flask
微型框架。测试环境:win10
,python@3.6.8
,flask@2.0.3
。
安装flask
Flask
是一个用Python
编写的Web应用程序框架,Flask
基于Werkzeug WSGI
工具包和Jinja2
模板引擎。flask
英文翻译为一种长颈烧瓶,官方logo
看起来像个辣椒。
Flask也被称为“microframework” ,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
官方网站是:
安装方式是:
pip install flask
启动进程
使用flask
框架的时候,最应该注意的地方,就是不能把文件命名为flask.py
。这样的话,就会出现模块空间的引用错误。报错类似如下:
AttributeError: module 'flask' has no attribute 'Flask'
基本测试代码:
import flask
api = flask.Flask(__name__)
print(flask.__version__)
@api.route('/', methods=['get'])
def index():
return "OK"
if __name__ == '__main__':
api.run(port=8888, debug=True, host='127.0.0.1')
响应get
请求
测试代码:
@api.route('/_get', methods=['get'])
def send_get():
id = int(flask.request.args.get('id'))
cookie = flask.request.headers.get("Cookie")
_json = {'msg': 'get用户id为' + str(id), 'header': cookie}
return json.dumps(_json, ensure_ascii=False)
访问方式:
响应post
请求
测试代码:
@api.route('/_post', methods=['post'])
def send_post():
id = int(flask.request.form.get('id'))
user_agent = flask.request.headers.get("User-Agent")
_json = {'msg': 'post用户id为' + str(id), 'header': user_agent}
return json.dumps(_json, ensure_ascii=False)
表格对比
post
和get
的区别:
method | 装饰器 | 获取参数方式 |
---|---|---|
GET | methods=['get'] | flask.request.args.get() |
POST | methods=['post'] | flask.request.form.get() |
获得header
的方式:
header | 语句 |
---|---|
UA | flask.request.headers.get("User-Agent") |
Cookie | flask.request.headers.get("Cookie") |
相关文档
因为本文的响应结果是json
,所以使用json.dumps()
输出了响应结果。涉及到中文文本输出的时候,需要设置特殊参数。具体可以参考文章:
如果想把这些flask
代码包装成docker
文件的话,可以参考下面的链接:
如果想看看nodejs
的express
框架,如何实现类似的需求的话,请点击:
综述
本文主要描述python
下的微型web框架flask
,主要聚焦于响应最简单的post
或者get
请求。更多高级的flask
经验文章,请点击下面的链接:


