flask简介
介绍
Flask是一个用Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。它是BSD授权的,一个有少量限制的免费软件许可。它使用了 Werkzeug 工具箱和 Jinja2 模板引擎。
Flask 的设计理念是简单、灵活、易于扩展,它不会限制开发者的选择,可以根据开发者的需求选择各种第三方扩展来增加功能。同时也是一个年轻的框架,2010年诞生,拥有蓬勃发展的社区。
路由
路由是Web开发中一个很重要的概念,用来将不同的请求,映射到响应的处理方法上,使用的修饰器是 @app.route
可以通过 @app.route中的method属性来指定请求的方式,一般默认情况下,flask路由是get方式,使用post方式,需要显示声明
-
methods=[‘GET’] 支持的请求方法为GET
-
methods=[‘POST’] 支持的请求方法为POST
-
methods=[‘GET’,‘POST’] 支持的请求方法为POST GET
flask应用
通过pip来安装flask
pip install flask
检查安装是否成功,可在pthon中,直接import flask 运行一下,没有报错说明安装成功
编写一个简单的web项目 (hello world)
from flask import Flask, request
# 创建一个flask 应用
app = Flask(__name__)
# 设置路由访问路径,项目根路径将访问以下index方法
@app.route("/")
def index():
return "hello world!!!!"
@app.route("/test")
def test():
return "hello world test!!!!"
if __name__ == '__main__':
# 启动服务
app.run()
运行python 脚本,出现以下信息,本机运行默认是用的 5000 端口
浏览器访问 一 (根目录)
浏览器访问 二 (test接口)
可自定义ip地址和端口号
app.run(host="localhost",port=8888)
以上一个简单的web应用即搭建完成
如果你只想简单的发布一些接口到服务器上,此种方法非常合适!!
Flask请求
Web应用最重要的就是请求和响应,flask提供了 request 和 response对象来处理请求与响应
请求
在 Flask 中,请求信息都被封装到 request 对象中
常用属性如下
scheme | 获取请求方案(协议) |
method | 获取本次请求的请求方式 |
request.args | 获取使用get请求方式提交的数据 |
request.form | 获取使用post请求方式提交的数据 |
request.values | 获取GET和POST请求方式提交的数据(GET和POST通用) |
request.cookies | 获取cookies中的信息 |
request.headers | 获取请求消息头的信息 |
request.path | 获取请求的url地址 |
request.files | 获取用户上传的文件 |
request.full_path | 获取请求的完整路径 |
request.url | 获取访问地址 |
带参数请求的几种方式
方式一:(动态路由)通过url路径传参
@app.route("/login/<name>/<pwd>")
def login(name,pwd):
print("用户名:%s,密码:%s" %(name,pwd))
return "登录成功"
也 可以指定参数类型
@app.route("/login/<string:name>/<int:pwd>")
def login(name,pwd):
print("用户名:%s,密码:%s" %(name,pwd))
return "登录成功"
调用:
http://127.0.0.1:5000/login/aaa/22
方式二:传统get方式传参(url路径后拼接参数)
@app.route("/login2" , methods=['GET'])
def login2():
name = request.args.get("name")
pwd = request.args.get("pwd")
print("用户名:%s,密码:%s" %(name,pwd))
return "登录成功"
调用:
http://127.0.0.1:5000/login2?name=aaa&pwd=22
方式二:from表单提交
@app.route("/loginByFrom",methods=['POST'])
def loginByFrom():
name = request.form.get("name")
pwd = request.form.get("pwd")
print("用户名:%s,密码:%s" %(name,pwd))
return "登录成功"
调用:
方式三:json数据提交
@app.route("/loginByJson")
def loginByJson():
data = request.json
name=data["name"]
pwd = data["pwd"]
print("用户名:%s,密码:%s" %(name,pwd))
return "登录成功"
调用: