![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flask
Dawn-明
这个作者很懒,什么都没留下…
展开
-
Flask 教程01
Flask简介 Web应用程序的本质 Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。 为什么要用Web框架? 如何生产一辆汽车? web网站发展至今,特别是服务器端,涉及到的知识、内容,非常广泛。这对程序员的要求会越来越高。如果采用成熟,稳健的框架,那么一些基础的工作,比如,安全性,数据流控制等都可以让框架来处理,那么程序开发人员可以把精力放在具体...原创 2019-03-02 20:49:40 · 147 阅读 · 0 评论 -
flask 教程11
上下文 上下文:相当于一个容器,保存了Flask程序运行过程中的一些信息。 Flask中有两种上下文,请求上下文和应用上下文。 请求上下文(request context) Flask从客户端收到请求时,要让视图函数能访问一些对象,这样才能处理请求。请求对象是一个很好的例子,它封装了客户端发送的HTTP请求。 要想让视图函数能够访问请求对象,一个显而易见的方式是将其作为参数传入视图函数,...原创 2019-03-03 00:22:01 · 144 阅读 · 0 评论 -
flask 教程12
Flask-Script 通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过: python hello.py runserver -h ip地址 -p 端口号 以上代码告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在的计算机发起的连接,即lo...原创 2019-03-03 00:24:18 · 99 阅读 · 0 评论 -
flask 教程14
过滤器 过滤器的本质就是函数。有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器。 使用方式: 过滤器的使用方式为:变量名 | 过滤器。 {{variable | filter_name(*args)}} 如果没有任何参数传给过滤器,则可以把括号省略掉 {{variable ...原创 2019-03-03 16:03:03 · 81 阅读 · 0 评论 -
flask教程15
自定义过滤器 过滤器的本质是函数。当模板内置的过滤器不能满足需求,可以自定义过滤器。自定义过滤器有两种实现方式: 一种是通过Flask应用对象的 add_template_filter 方法 通过装饰器来实现自定义过滤器 重要:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。 方式一 通过调用应用程序实例的add_template_filter方法实现自定义过滤器。该方法第...原创 2019-03-03 16:05:25 · 90 阅读 · 0 评论 -
flask 教程16
控制代码块 if语句 Jinja2 语法中的if语句跟 Python 中的 if 语句相似,后面的布尔值或返回布尔值的表达式将决定代码中的哪个流程会被执行: {%if user.is_logged_in() %} <a href='/logout'>Logout</a> {% else %} <a href='/login'>Login&...原创 2019-03-03 16:06:17 · 88 阅读 · 0 评论 -
flask 教程17
宏 对宏(macro)的理解: 把它看作 Jinja2 中的一个函数,它会返回一个模板或者HTML字符串 为了避免反复地编写同样的模板代码,出现代码冗余,可以把他们写成函数以进行重用 需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重复 使用 定义宏 {% macro input(name,value='',type='text') %} <...原创 2019-03-03 16:07:22 · 104 阅读 · 0 评论 -
flask 教程18
模板继承 模板继承是为了重用模板中的公共内容。一般Web开发中,继承主要使用在网站的顶部菜单、底部。这些内容可以定义在父模板中,子模板直接继承,而不需要重复书写。 标签定义的内容 {% block top %} {% endblock %} 相当于在父模板中挖个坑,当子模板继承父模板时,可以进行填充。 子模板使用extends指令声明这个模板继承自哪个模板 父模板中定义的块在子模板中...原创 2019-03-03 16:08:00 · 114 阅读 · 0 评论 -
flask 教程19
Flask特有的变量和函数 你可以在自己的模板中访问一些Flask默认内置的函数和对象 config 你可以从模板中直接访问Flask当前的config对象: {{config.SQLALCHEMY_DATABASE_URI}} sqlite:///database.db request 就是flask中代表当前请求的request对象: {{request.url}} htt...原创 2019-03-03 16:08:36 · 128 阅读 · 0 评论 -
flask教程10
状态保持 因为http是一种无状态协议,不会保持某一次请求所产生的信息,如果想实现状态保持,在开发中解决方式有: cookie:数据存储在客户端,节省服务器空间,但是不安全 session:会话,数据存储在服务器端 无状态协议: 协议对于事务处理没有记忆能力 对同一个url请求没有上下文关系 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会...原创 2019-03-02 21:05:47 · 116 阅读 · 0 评论 -
Flask教程02
入门引导 Flask的Hello World应用的代码是最简单的,只用在一个Python文件里码7行代码就够了。 from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.ru...原创 2019-03-02 20:51:32 · 88 阅读 · 0 评论 -
flask 教程03--环境安装
Flask 安装环境 使用虚拟环境安装Flask,可以避免包的混乱和版本的冲突,虚拟环境是Python解释器的副本,在虚拟环境中你可以安装扩展包,为每个程序单独创建的虚拟环境,可以保证程序只能访问虚拟环境中的包。而不会影响系统中安装的全局Python解释器,从而保证全局解释器的整洁。 虚拟环境使用virtualenv创建,可以查看系统是否安装了virtualenv: $ virtualen...原创 2019-03-02 20:52:36 · 287 阅读 · 0 评论 -
flask教程04
从 Hello World 开始 Flask程序运行过程 所有Flask程序必须有一个程序实例。 当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。 此时,Web服务器使用WSGI(Web Server Gateway Interface)协议,把来自客户端的所有请求都交给Flask程序实例,程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。 根据每...原创 2019-03-02 20:56:18 · 121 阅读 · 0 评论 -
flask教程05
url路由 请求方式限定 使用 methods 参数指定可接受的请求方式,可以是多种 @app.route('/',methods=['GET']) def hello(): return '<h1>hello world</h1>' 路由查找方式 同一路由指向两个不同的函数,在匹配过程中,至上而下依次匹配 @app.route('/') def...原创 2019-03-02 20:57:54 · 108 阅读 · 0 评论 -
flask教程06
异常捕获 abort 方法 抛出一个给定状态代码的 HTTPException,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。 参数: code – HTTP的错误状态码 # abort(404) abort(500) 只能抛出HTTP协议的状态码 errorhandler 装饰器 注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装...原创 2019-03-02 20:58:31 · 114 阅读 · 0 评论 -
flask 教程07
构建视图函数返回值 在 Python 中视图函数返回值有两种方式: - 直接return - 返回元组(response【响应内容】, status【状态码】, headers【响应头】)可以省略status和headers, hearders可以是字典。 - 可以自定义返回状态码,可以实现不符合http协议的状态码。 - make_response方法 from f...原创 2019-03-02 21:00:20 · 110 阅读 · 0 评论 -
flask教程08
request 就是flask中代表当前请求的request对象: from flask import request 常用的属性如下: 属性 说明 类型 data 记录请求的数据,并转换为字符串 * form 记录请求中的表单数据 MultiDict args 记录请求中的查询参数 MultiDict cookies...原创 2019-03-02 21:01:59 · 95 阅读 · 0 评论 -
flask教程09
请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:在请求开始时,建立数据库连接;在请求结束时,指定数据的交互格式。为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。 请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子: before_first_request:在处理第一个请求前运行。 before_request...原创 2019-03-02 21:02:55 · 95 阅读 · 0 评论 -
flask 教程20
Web表单 web表单是web应用程序的基本功能。 它是HTML页面中负责数据采集的部件。表单有三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。 在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能。 WTForms支持的HTML标准字段 ...原创 2019-03-03 16:09:07 · 210 阅读 · 0 评论