摘要:
Web表单 Web 表单是 Web 应用程序的基本功能。 它是HTML页面中负责数据采集的部件。表单有三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。 在Flask中,为了处理web表单,我们可以使用 Flask-WTF 阅读全文
摘要:
模板中特有的变量和函数 你可以在自己的模板中访问一些 Flask 默认内置的函数和对象 config 你可以从模板中直接访问Flask当前的config对象: {{config.SQLALCHEMY_DATABASE_URI}} sqlite:///database.db request 就是fla 阅读全文
摘要:
包含 Jinja2模板中,除了宏和继承,还支持一种代码重用的功能,叫包含(Include)。它的功能是将另一个模板整个加载到当前模板中,并直接渲染。 include的使用 {% include 'hello.html' %} 包含在使用时,如果包含的模板文件不存在时,程序会抛出TemplateNot 阅读全文
摘要:
模板继承 模板继承是为了重用模板中的公共内容。一般Web开发中,继承主要使用在网站的顶部菜单、底部。这些内容可以定义在父模板中,子模板直接继承,而不需要重复书写。 标签定义的内容 {% block top %} {% endblock %} 相当于在父模板中挖个坑,当子模板继承父模板时,可以进行填充 阅读全文
摘要:
模板代码复用 在模板中,可能会遇到以下情况: 多个模板具有完全相同的顶部和底部内容 多个模板中具有相同的模板代码内容,但是内容中部分值不一样 多个模板中具有完全相同的 html 代码块内容 像遇到这种情况,可以使用 JinJa2 模板中的 宏、继承、包含来进行实现 宏 对宏(macro)的理解: 把 阅读全文
摘要:
控制代码块 控制代码块主要包含两个: - if/else if /else / endif - for / endfor if语句 Jinja2 语法中的if语句跟 Python 中的 if 语句相似,后面的布尔值或返回布尔值的表达式将决定代码中的哪个流程会被执行: {%if user.is_log 阅读全文
摘要:
自定义过滤器 过滤器的本质是函数。当模板内置的过滤器不能满足需求,可以自定义过滤器。自定义过滤器有两种实现方式: 一种是通过Flask应用对象的 add_template_filter 方法 通过装饰器来实现自定义过滤器 重要:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。 需求:添 阅读全文
摘要:
过滤器 过滤器的本质就是函数。有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器。 使用方式: 过滤器的使用方式为:变量名 | 过滤器。 {{variable | filter_name(* 阅读全文
摘要:
模板的使用 在项目下创建 templates 文件夹,用于存放所有的模板文件,并在目录下创建一个模板html文件 temp_demo1.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</ 阅读全文
摘要:
Jinja2模板引擎简介 模板 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容 阅读全文
摘要:
Flask-Script 扩展 通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过: python hello.py runserver -host ip地址 以上代码告诉服务器在哪个网络接 阅读全文
摘要:
Session 对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息 在服务器端进行状态保持的方案就是Session Session依赖于Cookie session数据的获取 session:请求上下文对象,用于处理http请求中的一些数据内容 @ap 阅读全文
摘要:
上下文 上下文:相当于一个容器,保存了 Flask 程序运行过程中的一些信息。 Flask中有两种上下文,请求上下文和应用上下文 请求上下文(request context) 思考:在视图函数中,如何取到当前请求的相关数据?比如:请求地址,请求方式,cookie等等 在 flask 中,可以直接在视 阅读全文
摘要:
Cookie Cookie:指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地的数据(通常经过加密)。 复数形式Cookies。 Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。 Cookie是由服务器端生成,发送给客户端浏览器,浏览器会将Cookie的key 阅读全文
摘要:
状态保持 因为 http 是一种无状态协议,浏览器请求服务器是无状态的。 无状态:指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求。 无状态原因:浏览器与服务器是使用 socket 套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的 socket 阅读全文
摘要:
request request 就是flask中代表当前请求的 request 对象,其中一个请求上下文变量(理解成全局变量,在视图函数中直接使用可以取到当前本次请求) 常用的属性如下: 属性说明类型 data 记录请求的数据,并转换为字符串 * form 记录请求中的表单数据 MultiDict 阅读全文
摘要:
装饰器路由具体实现梳理 Flask有两大核心:Werkzeug和Jinja2 - Werkzeug实现路由、调试和Web服务器网关接口 - Jinja2实现了模板。 Werkzeug是一个遵循WSGI协议的python函数库 - 其内部实现了很多Web框架底层的东西,比如request和respon 阅读全文
摘要:
请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接; 在请求开始时,根据需求进行权限校验; 在请求结束时,指定数据的交互格式; 为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。 请求钩子是通过装饰器的形式 阅读全文
摘要:
异常捕获 HTTP 异常主动抛出 abort 方法 抛出一个给定状态代码的 HTTPException 或者 指定响应,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。 参数: code – HTTP的错误状态码 # abort(404) abort(500) 抛出状态码的 阅读全文
摘要:
虚拟环境 为什么要搭建虚拟环境? 在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装 比如联网安装Flask框架flask-0.10.1版本 sudo pip install flask==0.10.1 提示:使用如上命令, 会将flask-0.10.1安装到/usr/local 阅读全文