Flask进阶
Posted python测试资源分享
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask进阶相关的知识,希望对你有一定的参考价值。
flask进阶<三>
1.flask设计模式采用MVC模式
Model:处理数据相关逻辑
View:返回内容展示
Control:负责转发请求,对请求进行处理
2.run方法参数
debug:调试模式。
作用:1.可以重启服务器2.可以打印错误信息
host:'0.0.0.0' 代表所有人可访问,'127.0.0.1'代表本地访问
port:默认5000,可自行设置
3.服务启动方式
通过run方法启动
命令行启动:set FLASK_APP=filename;flask run
4.路由
路由访问特性:多个路由可访问同一个视图,叠加装饰器即可,路由装饰器必须放在最上面,其他装饰器放在路由装饰器下面,例如:
@app.route('/hello')@app.route('/')
@time
def index():
return render_template('index.html')
app.run()
路由值传递
方式一:直接在装饰器后添加参数再传递给视图,例如下面的id:
@app.route('/case/<id>')
def index(id):
return F'{id}'
方式二:通过request获取后传递给返回值,例如:
@app.route('/case')
def index( ):
id=request.args.get('id')
return F'{id}'
参数类型:int/string/float/path,例如:
@app.route('/case/<int:id>')
def index(id):
return F'{id}'
路由重定向
flask哲学:/case 和/case/ 是两个不同的url
手动重定向:
第一种方式在@app.route()加上redirect_to参数
第二种方式:在返回值上重定向
路由注册
单个装饰器注册
集中注册机制,一般较大项目时候使用app.add_url_rule('/',view_func=index)
装饰器路由的参数
端点:endpoint,默认端点名为函数名,每注册一次会添加到map函数里
请求方法:method,值为列表,指定前端请求方法
默认值:defaults,用于传递值给视图函数(也可以直接再视图函数指定默认参数)例如:@app.route('/',defaults={'id':3})等价于def index(id=3)
视图函数分离
将路由,视图,app对象分离,实现分层
分离过程中需注意导入顺序,防止循环导入。
以上是关于Flask进阶的主要内容,如果未能解决你的问题,请参考以下文章