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等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!

    Flask!

    Flask!

    1.实例化Flask对象时,可选的参数

    template_folder:模板所在文件夹的名字

    static_folder:静态文件所在文件的名字,默认是static,可以不用填

    app = Flask(__name__,template_folder='templates',static_url_path='/xxxxxx')

    Flask!

    添加路由关系的本质:将url和视图函数封装成一个Rule对象,添加到Flask的url_map字段中

    2.Flask中装饰器应用

    Flask!

    Flask!

    debug = True 是指进入调试模式,服务器会在 我们的代码修改后, 自动重新载入,有错误的话会提醒,每次修改代码后就不需要再手动重启

    点击查看详情

    4.请求响应相关

    1.获取请求数据,及相应

    Flask!

    Flask!

    Flask!

    三、配置文件

    Flask!

    Flask!

    Flask!

    四、路由系统

    1.可传入参数:

    Flask!

    Flask!

    2.反向生成URL: url_for

    endpoint("name") #别名,相当于django中的name

    Flask!

    Flask!

    Flask!

    Flask!

    Flask!

    4.自定制正则路由匹配

    扩展Flask的路由系统,让他支持正则,这个类必须这样写,必须去继承BaseConverter

    Flask!

    Flask!

    五、视图函数

    1.Django中的CBV模式

    Flask!

    2.Flask中的CBV

    Flask!

    六、请求与响应

    Flask!

    Flask!

    七、模板语法

    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

    Flask!

    Flask!

    3.宏

    只有定义的东西在很多地方去使用的时候才去用它,

    html

    Flask!

    八、Session

    除请求对象之外,还有一个 session 对象。它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需要设置一个密钥。

    • 设置:session['username'] = 'xxx'

    • 删除:session.pop('username', None)

    Flask!

    Flask!

    九、蓝图

    蓝图用于为应用提供目录划分:

    小型应用程序:示例

    大型应用程序:示例

    其他:

    • 蓝图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、闪现的用途

    某个数据仅需用一次时,可以使用闪现

    Flask!

    Flask!

    十一、中间件

    在函数执行之前或函数执行之后想做点事情,有2种方式

    第一种:装饰器

    第二种:flask里面的扩展,相当于django中的中间件

    Flask!

    Flask!

    运行结果:

    还有一个@app.before_first_request:表示,当程序运行起来,第一个请求来的时候就只执行一次,下次再来就不会在执行了

    十二、请求扩展


    以上是关于Flask!的主要内容,如果未能解决你的问题,请参考以下文章

    12_关于flask中的宏

    Flask之模板之宏继承包含

    Flask模板宏的概念和基本使用

    python flask(多对多表查询)

    python后端 flask框架 计算时间差 并根据时间差条件返回flag值

    python后端 flask框架 计算时间差 并根据时间差条件返回flag值