Flask!
Posted 福建新点信息科技有限公司
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask!相关的知识,希望对你有一定的参考价值。
阅读目录(Content)
一、Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来)
与Django的简单比较
二、基本使用
1.实例化Flask对象时,可选的参数
2.Flask中装饰器应用
4.请求响应相关
1.获取请求数据,及相应
2.flask中获取URL后面的参数(from urllib.parse import urlencode,quote,unquote)
三、配置文件
四、路由系统
1.可传入参数:
2.反向生成URL: url_for
3. @app.route和app.add_url_rule参数
4.自定制正则路由匹配
五、视图函数
1.Django中的CBV模式
2.Flask中的CBV
六、请求与响应
七、模板语法
1、模板的使用
1.为了防止xss攻击,加了验证,所以页面上显示字符串的形式,解决办法,有两种方法
2、自定义模板方法
3.宏
八、Session
九、蓝图
十、闪现(flash)
1、本质
2、闪现的用途
十一、中间件
十二、请求扩展
默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!
1.实例化Flask对象时,可选的参数
template_folder:模板所在文件夹的名字
static_folder:静态文件所在文件的名字,默认是static,可以不用填
app = Flask(__name__,template_folder='templates',static_url_path='/xxxxxx')
添加路由关系的本质:将url和视图函数封装成一个Rule对象,添加到Flask的url_map字段中
2.Flask中装饰器应用
debug = True 是指进入调试模式,服务器会在 我们的代码修改后, 自动重新载入,有错误的话会提醒,每次修改代码后就不需要再手动重启
点击查看详情
4.请求响应相关
1.获取请求数据,及相应
三、配置文件
四、路由系统
1.可传入参数:
2.反向生成URL: url_for
endpoint("name") #别名,相当于django中的name
4.自定制正则路由匹配
扩展Flask的路由系统,让他支持正则,这个类必须这样写,必须去继承BaseConverter
五、视图函数
1.Django中的CBV模式
2.Flask中的CBV
六、请求与响应
七、模板语法
1、模板的使用
Flask使用的是Jinja2模板,所以其语法和Django无太大差别
Flask中模板里面,执行函数时,需要带()才执行
1.为了防止xss攻击,加了验证,所以页面上显示字符串的形式,解决办法,有两种方法
方法一:在后端使用Markup,等价于Django里的mark_safe
方法一:在后端使用Markup,等价于Django里的mark_safe
v = Markup("<input type='text' />")
方法二:在前端使用safe
{{ v1|safe }}
2、自定义模板方法
Flask中自定义模板方法的方式和Bottle相似,创建一个函数并通过参数的形式传入render_template,
run.py
3.宏
只有定义的东西在很多地方去使用的时候才去用它,
八、Session
除请求对象之外,还有一个 session 对象。它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需要设置一个密钥。
设置:session['username'] = 'xxx'
删除:session.pop('username', None)
九、蓝图
蓝图用于为应用提供目录划分:
小型应用程序:示例
大型应用程序:示例
其他:
蓝图URL前缀:xxx = Blueprint('account', __name__,url_prefix='/xxx')
蓝图子域名:xxx = Blueprint('account', __name__,subdomain='admin')
# 前提需要给配置SERVER_NAME: app.config['SERVER_NAME'] = 'hc.com:5000'
# 访问时:admin.hc.com:5000/login.html
十、闪现(flash)
session存在在服务端的一个字典里面,session保存起来,取一次里面还是有的,直到你删除之后才没有了
1、本质
flash是基于session创建的,flash支持往里边放值,只要你取一下就没有了,相当于pop了一下。不仅可以拿到值,而且可以把其从session里的去掉,
基于Session实现的用于保存数据的集合,其特点是:使用一次就删除。
2、闪现的用途
某个数据仅需用一次时,可以使用闪现
十一、中间件
在函数执行之前或函数执行之后想做点事情,有2种方式
第一种:装饰器
第二种:flask里面的扩展,相当于django中的中间件
运行结果:
还有一个@app.before_first_request:表示,当程序运行起来,第一个请求来的时候就只执行一次,下次再来就不会在执行了
十二、请求扩展
以上是关于Flask!的主要内容,如果未能解决你的问题,请参考以下文章