视图函数不能面向对象编程,利用类视图来代替视图函数来解决这个问题html
导入视图类 View前端
from flask.views import Viewjava
编写一个视图子类python
利用View子类获取到一个视图方法django
MyView.as_view('test')编程
注意:.as_view方法的放回值是一个方法,并且该方法的名字就是传进去的参数json
将获取到的视图方法和路径对应起来flask
类视图的原理后端
把as_view方法返回的结果赋值给view_func
as_view方法返回的是一个方法(注意:as_view方法传入的参数就是as_view返回的那个方法的名字),该方法会调用dispatch_request方法
一旦路由进来,就会调用 dispatch_request 方法
类视图的目的就是实现逻辑分离、方便管理cookie
利用视图函数实现不一样的请求执行不一样的逻辑时比较复杂,须要在视图函数函数中进行判断;若是利用方法视图实现就比较简单
导入方法视图类
from flask.views import MethodView
建立方法视图子类
注意:视图类中的方法就是支持的请求类型
利用方法视图子类建立一个视图函数
TestMethodView.as_view('testMethodView')
注意:as_view返回的是一个视图函数,并且该视图函数逇名称就是传进去的参数
将获取到的视图方法和路径对应起来
app.add_url_rule('/test02/', view_func=TestMethodView.as_view('testMethodView'))
虽然在方法视图中定义的函数就是支持的请求类型,可是咱们能够在配置路径时指定哪一个路径对应哪中类型的请求
利用方法视图子类获取一个名字为testMethodView02的视图函数,该视图函数只能支持GET请求,并且支持转换器
利用利用方法视图子类获取一个名字为testMethodView03的视图函数,该视图函数只能支持POST请求
模拟POST请求
一、模板的使用
Flask使用的是Jinja2模板,因此其语法和Django无太大差异
Flask中模板里面,执行函数时,须要带()才执行
1.为了防止xss攻击,加了验证,因此页面上显示字符串的形式,解决办法,有两种方法
方法一:在后端使用Markup,等价于Django里的mark_safe
方法二:在前端使用safe
2.静态文件的两种导入方式
目录结构:
方式一:
方式二:
3.flask中模板语法不提示,解决办法
点击选择jinja2
二、自定义模板方法
Flask中自定义模板方法的方式和Bottle类似,建立一个函数并经过参数的形式传入render_template,
run.py
index.html
PS:模板继承的方法和django的同样。
3.宏
只有定义的东西在不少地方去使用的时候才去用它,
html
至关于在页面上定义了一个名为xx的'函数',这个函数接收3个参数,咱们给type和value写上了默认值,此时调用,咱们还须要传入一个参数,咱们此时传入了一个n1,则
页面上会生成3个input框,name都为n1
原文连接:
https://www.cnblogs.com/huchong/p/8227606.html
识别图中二维码,领取python全套视频资料