flask工具搭建web微服务
Flask是一个Python编写的Web 微框架,让咱们可使用Python语言快速实现一个网站或Web服务。
参考自Flask官方文档:https://flask.palletsprojects.com/en/0.12.x/
参考中文文档官方文档:https://dormousehole.readthedocs.io/en/latest/
1.安装flask
需要python 环境,这个自行安装
1 | pip install flask |
简单上手
最小的 Flask 应用以下flask_demo.py
1 | from flask import Flask |
代码解析:
一、首先咱们导入了 Flask 类。 该类的实例将会成为咱们的 WSGI 应用。 , WSGI作为一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。
二、接着咱们建立一个该类的实例。第一个参数是应用模块或者包的名称。若是你使用 一个单一模块(就像本例),那么应当使用 name ,由于名称会根据这个 模块是按应用方式使用仍是做为一个模块导入而发生变化(多是 ‘main’ , 也多是实际导入的名称)。这个参数是必需的,这样 Flask 才能知道在哪里能够 找到模板和静态文件等东西
三、而后咱们使用 route() 装饰器来告诉 Flask 触发函数的 URL 。
四、函数名称被用于生成相关联的 URL 。函数最后返回须要在用户浏览器中显示的信息
运行结果:
1 | * Serving Flask app "flask_demo" (lazy loading) |
打开链接查看 访问:http://127.0.0.1:5000/
说明
1 | app.route(rule, options) |
rule 参数表示与该函数的URL绑定。
options 是要转发给基础Rule对象的参数列表。
在上面的示例中,’/ ‘ URL与hello_world()函数绑定。所以,当在浏览器中打开web服务器的主页时,将呈现该函数的输出。
Flask类的run()方法在本地开发服务器上运行应用程序。
1 | app.run(host, port, debug, options) |
全部参数都是可选的web
host:要监听的主机名。 默认为127.0.0.1(localhost)。设置为“0.0.0.0”以使服务器在外部可用
port :默认值为5000
debug:默认为False。 若是设置为True,则提供调试信息,能够自动重载代码并显示调试信息
options:要转发到底层的Werkzeug服务器。
注意,False 和True 首字母大写
默认状况下,Flask绑定IP为127.0.0.1,端口为5000。也能够经过下面的方式自定义
1 | app.run(host='0.0.0.0', port=80, debug=True) |
0.0.0.0表明电脑全部的IP。80是HTTP网站服务的默认端口。
什么是默认?好比,咱们访问网站http://www.example.com,实际上是访问的http://www.example.com:80,只不过:80能够省略不写。
Flask HTTP方法
Web 应用使用不一样的 HTTP 方法处理 URL 。当你使用 Flask 时,应当熟悉 HTTP 方法。 缺省状况下,一个路由只回应 GET 请求。 可使用 route() 装饰器的 methods 参数来处理不一样的 HTTP 方法:
方法 描述
GET 以未加密的形式将数据发送到服务器,最多见的方法。
HEAD 和GET方法相同,但没有响应体。
POST 用于将HTML表单数据发送到服务器,POST方法接收的数据不禁服务器缓存。
PUT 用上传的内容替换目标资源的全部当前表示。
DELETE 删除由URL给出的目标资源的全部当前表示。
默认状况下,Flask路由响应GET请求。可是,能够经过为route()装饰器提供方法参数来更改此首选项。
为了演示在URL路由中使用POST方法,首先让咱们建立一个HTML表单,并使用POST方法将表单数据发送到URL。
将如下脚本另存为login.html
1 | <html> |
运行如下代码
1 | from flask import Flask, redirect, url_for, request |
在浏览器中打开login.html,在文本字段中输入name,而后单击提交。
在这里插入图片描述
表单数据将POST到表单标签的action子句中的URL。
http://localhost/login映射到login()函数。因为服务器经过POST方法接收数据,所以经过如下步骤得到从表单数据得到的“nm”参数的值:
表单数据将POST到表单标签的action子句中的URL。
1 | user = request.form['nm'] |
它做为变量部分传递给’/ success’ URL。浏览器在窗口中显示welcome消息。
在这里插入图片描述
在login.html中将方法参数更改成’GET’,而后在浏览器中再次打开它。服务器上接收的数据是经过GET方法得到的。经过如下的步骤得到’nm’参数的值:
1 | User = request.args.get('nm') |
这里,args是包含表单参数对及其对应值对的列表的字典对象。与’nm’参数对应的值将像以前同样传递到’/ success’ URL。
若是通过json 的方式获取数据,则直接使用data1 = request.get_data() 获取字符传,然后使用json.loads(data2)进行转换
1 | from flask import Flask, jsonify, request, abort |
一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;