网站首页 > 技术文章 正文
Flask架构
随着微服务架构的兴起,Flask以其简单、轻量级、便捷的特性,也随之越来越流行。下面我们就来看看Flask的简洁架构:通过app配置发布服务,通过路由定位url到指定的api,每一个api几乎都是独立工作
from flask import Flask
# 创建app对象
app = Flask(__name__)
# 添加配置
app.debug = True
# 通过装饰器指定路由
@app.route('/home')
def home():
# 函数提供api接口的功能实现
return 'hello will'
# 运行flask 服务
app.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对象后,启动服务之前,你可以随时添加并且会生效的配置,我们称为动态配置。
# 使用对象配置参数
class Config(object):
# 调试模式
DEBUG = True
# 自定义配置
ITCAST = 'python'
# 开发环境
ENV = 'develop'
# 测试模式
TESTING = True
# UPLOAD_FOLDER = 'static/uploads/' # 上传目录
# MAX_CONTENT_LENGTH = 100 * 1024 * 1024 # 上传大小限制
配置示例:
# 静态配置
static_conf = {
'template_folder':'templates',
'static_folder':'templates/static',
}
# 使用对象配置参数
class Config(object):
# 调试模式
DEBUG = True
# 自定义配置
ITCAST = 'python'
# 开发环境
ENV = 'develop'
# 测试模式
TESTING = True
# UPLOAD_FOLDER = 'static/uploads/' # 上传目录
# MAX_CONTENT_LENGTH = 100 * 1024 * 1024 # 上传大小限制
app = Flask(__name__,**static_conf)
app.config.from_object(Config)
Flask接口开发
3.1 api接口开发
Flask api接口开发包含两个部分:其一,接口地址也就是路由配置;其二,接口实现
接口地址,我们一般通过装饰来实现路由配置。包含访问路径,和请求方法两个部分。接口地址的组成为:http://ip:port/path。其中path就是路由里面配置的接口路径。
api接口,则是通过函数来实现。参数,可以通过request对象获得;返回值则是函数的返回值。
@app.route('/test', methods=['GET'])
def test():
"""['GET']"""
return {'code': 0, 'msg': '请求成功'}
@app.route('/test1', methods=['GET', 'POST'])
def test1():
"""['GET']"""
# 获取get传参
print(request.args)
return {'code': 0, 'msg': '请求成功', 'data': dict(request.args)}
@app.route('/post1', methods=['POST'])
def post1():
"""['POST']"""
# 获取post的url-form-encoded传参
print(request.form)
return {'code': 0, 'msg': '请求成功', 'data': dict(request.form)}
@app.route('/post2', methods=['POST'])
def post2():
"""['POST']"""
# 获取post的json传参
print(request.json)
return {'code': 0, 'msg': '请求成功', 'data': dict(request.json)}
接口调用示例:
3.2 发布静态网页
很多年前就已经基本普及前后端分离的架构,在微服务领域,前后端分离几乎已经是必然。所以任何web类架构,都会涉及静态网页发布。当然,会Nginx的同学,这一部分可以用Nginx直接发布更为简单。
flask发布静态网页也非常简单,其架构为:使用template发布网站首页,网站使用到的静态内容,则通过静态文件配置。也就是静态配置里面,static_folder与template_folder的组合使用。
首先,添加静态网页源码
然后,在Flask静态配置里面添加两个路径配置
# 静态配置
static_conf = {
'template_folder':'templates',
'static_folder':'templates/static',
}
最后,添加一个发布首页的模板路由
# 静态网页
@app.route('/')
def index():
return render_template('index.html')
当我们访问根路径,就可以打开已经写好的网站
到这里,你基本上就可以使用flask,做你想要做的任何web开发啦!!!
猜你喜欢
- 2024-10-15 Python Flask Web表单(flask form表单)
- 2024-10-15 如何在Flask应用程序中使用JSON Web Tokens进行安全认证
- 2024-10-15 综合指南:将 Flask 与 MongoDB 结合使用
- 2024-10-15 python-flask搭建平台,HTML+CSS+JS写前端的web全栈-动画轮播
- 2024-10-15 Flask 表单处理(flask formdata)
- 2024-10-15 三、flask博客项目实战-之表单(flask 表单)
- 2024-10-15 flask python web开发的简单易学框架
- 2024-10-15 Flask-APScheduler使用教程(flask apscheduler)
- 2024-10-15 flask 项目中使用 bootstrapFileInput(进阶篇)
- 2024-10-15 基于flask框架展示数据可视化的一次尝试
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)