ew的小天地 科技 快速入门Flask微服务架构

快速入门Flask微服务架构

Flask架构

随着微服务架构的兴起,Flask以其简单、轻量级、便捷的特性,也随之越来越流行。下面我们就来看看Flask的简洁架构:通过app配置发布服务,通过路由定位url到指定的api,每一个api几乎都是独立工作

快速入门Flask微服务架构

from flask import Flasknn# 创建app对象napp = Flask(__name__)nn# 添加配置napp.debug = Truenn# 通过装饰器指定路由n@app.route('/home')ndef home():nt# 函数提供api接口的功能实现ntreturn 'hello will'nnn# 运行flask 服务napp.run()

那么接下来我们就深入学习一下flask的每一部分

Flask配置详解

首先要清楚,flask配置分为两类,一是静态配置,二是动态配置。

2.1 静态配置

静态配置是指,在创建app对象的时候就需要添加的配置。如果创建后动态配置,就不会生效。

在flask的源码里,创建对象时可以指定如下配置

配置说明

import_name

str

项目运行入口

static_url_path

str

前端访问资源文件的前缀目录

static_folder

str="static"

静态文件在文件夹的目录里

template_folder

str="templates"

静态模板文件存放的根路径

2.2 动态配置

创建app对象后,启动服务之前,你可以随时添加并且会生效的配置,我们称为动态配置。

# 使用对象配置参数nclass Config(object):n # 调试模式n DEBUG = Truen # 自定义配置n ITCAST = 'python'n # 开发环境n ENV = 'develop'n # 测试模式n TESTING = Truenn # UPLOAD_FOLDER = 'static/uploads/' # 上传目录n # MAX_CONTENT_LENGTH = 100 * 1024 * 1024 # 上传大小限制

配置示例:

# 静态配置nstatic_conf = {n 'template_folder':'templates',n 'static_folder':'templates/static',n}nn# 使用对象配置参数nclass Config(object):n # 调试模式n DEBUG = Truen # 自定义配置n ITCAST = 'python'n # 开发环境n ENV = 'develop'n # 测试模式n TESTING = Truenn # UPLOAD_FOLDER = 'static/uploads/' # 上传目录n # MAX_CONTENT_LENGTH = 100 * 1024 * 1024 # 上传大小限制ntnnapp = Flask(__name__,**static_conf)napp.config.from_object(Config)n

Flask接口开发

3.1 api接口开发

Flask api接口开发包含两个部分:其一,接口地址也就是路由配置;其二,接口实现

接口地址,我们一般通过装饰来实现路由配置。包含访问路径,和请求方法两个部分。接口地址的组成为:http://ip:port/path。其中path就是路由里面配置的接口路径。

api接口,则是通过函数来实现。参数,可以通过request对象获得;返回值则是函数的返回值。

@app.route('/test', methods=['GET'])ndef test():n """['GET']"""n return {'code': 0, 'msg': '请求成功'}nnn@app.route('/test1', methods=['GET', 'POST'])ndef test1():n """['GET']"""n # 获取get传参n print(request.args)n return {'code': 0, 'msg': '请求成功', 'data': dict(request.args)}nnn@app.route('/post1', methods=['POST'])ndef post1():n """['POST']"""n # 获取post的url-form-encoded传参n print(request.form)n return {'code': 0, 'msg': '请求成功', 'data': dict(request.form)}nnn@app.route('/post2', methods=['POST'])ndef post2():n """['POST']"""n # 获取post的json传参n print(request.json)n return {'code': 0, 'msg': '请求成功', 'data': dict(request.json)}

接口调用示例:

快速入门Flask微服务架构

快速入门Flask微服务架构

快速入门Flask微服务架构

3.2 发布静态网页

很多年前就已经基本普及前后端分离的架构,在微服务领域,前后端分离几乎已经是必然。所以任何web类架构,都会涉及静态网页发布。当然,会Nginx的同学,这一部分可以用Nginx直接发布更为简单。

flask发布静态网页也非常简单,其架构为:使用template发布网站首页,网站使用到的静态内容,则通过静态文件配置。也就是静态配置里面,static_folder与template_folder的组合使用。

首先,添加静态网页源码

快速入门Flask微服务架构

然后,在Flask静态配置里面添加两个路径配置

# 静态配置nstatic_conf = {n 'template_folder':'templates',n 'static_folder':'templates/static',n}

最后,添加一个发布首页的模板路由

# 静态网页n@app.route('/')ndef index():n return render_template('index.html')

当我们访问根路径,就可以打开已经写好的网站

快速入门Flask微服务架构

到这里,你基本上就可以使用flask,做你想要做的任何web开发啦!!!

返回顶部