详解详解Flask前后端分离项目案例前后端分离项目案例
主要介绍了Flask前后端分离项目案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
简介简介
学习慕课课程,Flask前后端分离API后台接口的实现demo,前端可以接入小程序,暂时已经完成后台API基础架构,使用
postman 调试.git
重构部分:
ken校验模块
auths认证模块
scope权限模块,增加全局扫描器(参考flask HTTPExceptions模块)
收获收获
1. 我们可以接受定义时的复杂,但不能接受调用时的复杂
2. 如果你觉得写代码厌倦,无聊,那你只是停留在功能的实现上,功能的实现很简单,你要追求的是更好的写法,抽象的
艺术,不是机械的劳动而是要 创造 ,要有自己的思考
3. Sqlalchemy 中对类的创建都是用元类的方式,所以调用的时候都不用实例化,当我们重写 __init__ 方法是需要调用
orm.reconstrcut 装饰器,才会执行实例化对象的构造函数
4. 权限等级模块的设计( api访问权限 ),如超级管理员,管理员,普通用户,访客,这四者之间的关系,有包含的关系,
所以可以考虑合并也可以考虑排除的方式来构建权限控制模块. 参考本项目中的 app.libs.scope
5. 学的是解决问题的方法,首先要有深度,在去考虑广度,还要懂得迁移应用,形成自己的思维模型。
知识点复盘知识点复盘
初始化初始化flask应用程序应用程序
app = Flask(__name__, static_folder='views/statics', static_url_path='/static', template_folder="templates")
创建Flask应用程序实例对象, 如果模块存在,会根据模块所在的目录去寻找静态文件和模块文件, 如果模块不存在,会默认使
用app对象所在的项目目录
__name__ 表示以此模块所在的目录作为工作目录,就是静态文等从这个目录下去找
static_folder 指定静态文件存放相对路径 flask默认会用/进行分割然后取最后一个作为访问 url 类似 Django 中的
STATICFILES_DIRS
static_url_path 指定访问静态文件的 url 地址前缀, 类似 Django 中的 STATIC_URL
template_folder 指定模板文件的目录
@property
def static_url_path(self):
"""The URL prefix that the static route will be accessible from.
If it was not configured during init, it is derived from
:attr:`static_folder`.
"""
if self._static_url_path is not None:
return self._static_url_path
if self.static_folder is not None:
basename = os.path.basename(self.static_folder)
return ("/" + basename).rstrip("/")
@static_url_path.setter
def static_url_path(self, value):
if value is not None:
value = value.rstrip("/")
self._static_url_path = value
Flask 中中 url 相关底层类相关底层类
BaseConverter 子类:保存提取 url 参数匹配规则
Rule 类:记录一个 url 和一个视图函数的对应关系
Map 类:记录所有 url 地址和试图函数对应的关系 Map(Rule, Rule, ....)
MapAdapter 类:执行 url 匹配的过程,其中有一个 match 方法, Rule.match(path, method)
自定义路由管理器