程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

模块(0)

标准库(0)

标签  

标准库模块(0)

字符串(0)

日期归档  

Flask入门

发布于2020-02-24 22:57     阅读(792)     评论(0)     点赞(24)     收藏(4)


Flask什么?

Flask是一个轻量级Web框架,就是提供一个工具,库和技术来允许你构建一个Web应用程序.这个Web应用程序,可以是一些Web页面,博客, wiki ,基于 Web 的日历应用或商业网站

简单使用

在这里插入图片描述
在这里插入图片描述

  • 若每次要固定路由,麻烦,我们采用动态路由;(用变量表示)

在这里插入图片描述

  • url中带有参数

在这里插入图片描述
在这里插入图片描述

HTTP请求方式GET和POST的区别

  • get请求传递的参数url上可见,而post请求不可见
  • get请求的参数和url拼接,post请求的参数在body中
  • get请求的大小有限制,url不限制
  • get请求可以使用缓存,post不可缓存

在这里插入图片描述
在这里插入图片描述

note

  1. get请求传递的参数在request.args中/ post请求传递的参数在request.form中
  2. 路由默认接受的传递方式是get,当需要指定的时候,采用method方式指定;

重定向和错误

  • 重定向指从当前页面跳转到指定的页面
    (如果输入的用户名和密码正确,则跳转到主页,否则重新返回登录界面)

在这里插入图片描述

  • 自定义错误页面
    (当客户端访问出现问题的时候,能返回一个更加美观的访问失败页面)

在这里插入图片描述

日志信息配置

  • 在设置日志文件级别的时候,在app创建之前将日志文件的级别重置为DEBUG

在这里插入图片描述

  • 首先是创建日志文件的handler对象,指定存储路径和编码格式
  • 设置日志文件的格式,通过查看源代码来指定参数
  • 然后给handle对象设定自定义的日志文件输出格式
  • 在设置日志文件的级别
  • 最后将日志文件处理对象和app绑定

在这里插入图片描述

会话、缓存

  • 当在使用会话session存储用户信息时,需要指定secret_key,否则会报错(key值可任意)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • session可以当作是字典类型

flask框架中加载static文件

两种方法都ok
在这里插入图片描述

注册

在这里插入图片描述

消息闪现(只展示一次的数据或者参数)

使用闪现系统来给用户反馈信息;闪现系统在一次请求结束后,记录一个信息,然后在下一个请求中访问这个数据。

  • 闪现的语法

在这里插入图片描述

  • 闪现信息的获取

在这里插入图片描述

注销操作

在这里插入图片描述

  • 从会话框中弹出已经存在的用户,然后并返回重新登录的界面

用户的登录和注销显示

当用户已经登录状态下,只显示注销按钮
当用户未登录情况,显示出登录和注销按钮
使用了JinJa2语法的 if判断语句
在这里插入图片描述

存在用户的表格显示

采用for循环语句 (在视图函数logout中需要传入数据库中已存在的用户的信息)
在这里插入图片描述

什么是jinja2模板引擎

  • 将业务逻辑和页面逻辑分来,即将视图函数和HTML页面分开
  • 根据各种变量条件的不同,生成不同的HTml页面

什么叫做模板渲染

通俗理解,函数运行结果返回一个html页面,在这个html页面中可以调用你传递的参数,将其返回到页面上
使用render_template()函数
可以认为是在别人访问过程中的动态赋值;

在这里插入图片描述

JinJa2内置过滤器

在这里插入图片描述
在这里插入图片描述

  • 不把标签转义,展示原本的HTML页面

模板继承

避免代码的重复编写

  • 定义模板

在这里插入图片描述
使用block来占位,取名为title 然后在子HTML中进行内容的填充

  • 模板的调用

在这里插入图片描述

简单理解为函数
声明 macro
在这里插入图片描述

include操作

在这里插入图片描述

  • 分类型将小部件代码嵌入,便于寻找和维护

验证用户是否登录来跳转页面

如果用户未登录,则跳转到登录界面
在这里插入图片描述
在这里插入图片描述

  • 该功能采用装饰器来实现,其中wraps装饰器保证被装饰函数的函数名和帮助文档不变;

可以在flask框架中继承bootstrap

在框架中可以使用pip install flask_bootstrap来安装

扩展的程序例如上述的bootstrap在创建程序的时候实例化和初始化(会产生一个基本模板);

  • 导入flask_bootstrap,并和app绑定

在这里插入图片描述

  • 在原先封装的bootstrap条件下自定义base基本模板

在这里插入图片描述

  • 其他的HTML页面去继承自定义的base基本模板,然后在对不同页面显示的内容进行重写或者修改

在这里插入图片描述

  • 其中遍历闪现信息,用关闭的提示框显示(使用闪现信息时要记得配置session的加密言,因为闪现信息存储在session中)

在这里插入图片描述

  • 设置session加密言(密码可以随便设置)

在这里插入图片描述

样式的继承以及添加自定义

在这里插入图片描述

flask-mail 扩展发送邮件

  • 配置(可以对其优化,将配置文件独立出去)

在这里插入图片描述

  • 定义发送邮件的函数,用Message来封装,通过查看源码来传入需要的参数
  • app_context()应用上下文

在这里插入图片描述

当用户注册成功的时候,给注册的邮箱发送一个注册成功的HTML页面

在这里插入图片描述

  • register.html表单处理,然后以post方式提交

在这里插入图片描述

  • 发送邮件的时候传递HTML页面,页面用rend_template读取,然后传入一些需要在html页面中显示的参数

在这里插入图片描述

flask表单处理

  • Flask-WTF 抽象出一些表单处理的共性,如各种类型、长度验证等(pip安装即可)

  • 创建FlaskForm的子类(类似与HTML编写用python中操作对象的方式来编写)

在这里插入图片描述

  • 原先的注册路由代码修改

在这里插入图片描述
在这里插入图片描述

  • 先创建表单对象,然后from.validate_on_submit()在提交的时候验证Http请求的方式还有是否满足输入规范要求(from.validate_on_submit()等价于 request.method==’ post ’ and from.validate())

  • 若不符合要求,则展示register界面,并且将实例化的form对象传入,在register的HTML页面中调用form的参数来显示输入框

在这里插入图片描述

使用flask-bootstrap快速生成表单页面

在这里插入图片描述

  • 使用内部定义的宏来快速生成表单页面
发布了19 篇原创文章 · 获赞 0 · 访问量 262


所属网站分类: 技术文章 > 博客

作者:追梦骚年

链接:https://www.pythonheidong.com/blog/article/232702/12e64ef84109feeaa154/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)