一、Flask介绍

Flask是一个基于Werkzeug,Jinja 2 轻量级的web开发框架, 使用Python开发, 上手简单。

二、安装Flask

三、第一个Flask程序

1、编写app.py文件内容如下:

2、启动程序

浏览器访问http://localhost:9001/查看显示内容

程序说明:

Line 4: 导入Flask类

Line :7 创建Flask实例, 第一个参数为模块或者包的名称, 模块名称会根据是否单独应用而变化因此可以选择使用name变量动态指定, 该参数与Flask查找static和template文件位置有关

Line 10: 定义路由endpoint=/, 表示有index函数处理请求url为/的GET请求

Line 18: 启动app, 执行监听的host:port, 在测试环境开启调试模

注意: debug模式是不安全的, 在生产环境应该关闭

四、路由

1、路由用于将python函数绑定到url上, 一个函数可以绑定多个路由规则, 也可以构建动态的url

2、访问浏览器http://localhost:9001/users/

3、访问浏览器http://localhost:9001/users/12/

4、在动态url中通过添加变量<varname>将参数传递到函数中, 在添加变量可以使用<converter:varname>指定varname的类型

converter支持int, float, path三种类型

5、路由中的endpoint有两种模式, 以/结尾和不以/结尾

对于以/结尾的route, 在浏览器中访问url时若不以/结尾, 会被flask重定向到与以/结尾的endpoint上

对于不以/结尾的route, 在浏览器中访问url时若以/结尾, 则会返回404错误

个人建议: 在定义route和使用url访问时结尾都加上/

6、路由中可以通过methods指定函数处理的HTTP方法, 默认只处理GET方法

HTTP方法:

GET: 获取内容

POST: 提交新数据

HEAD: 检查数据是否存在

PUT: 覆盖数据

DELETE: 删除数据

OPTIONS: 检查服务器支持哪些方法

五、模板

1、项目目录结构:

2、模板存放目录为/templates/

3、渲染模板

说明:

Line 2: 导入render_template函数

Line 8: 使用render_template函数渲染模板users.html, 并将变量title和users传递给模板

4、模板定义

说明:

Line 5: 将title变量渲染到模板中, 需要使用两个大括号包含变量

Line 17: 遍历users, for语句需要被包含在大括号百分号之中,结束需要用endfor

Line 21: 条件判断, if语句需要被包含在大括号百分号之中,结束需要用endfif

5、访问浏览器http://localhost:9001/users/

六、静态文件

可以在模板中引入本地的js, css, 图片等资源文件

说明:

  1. 静态资源文件需要放置在static目录

  2. 在模板中使用/static/filename.suffix的格式引入文件

  3. 可以使用url_for('static', filename=filename.suffix)函数自动生成url引入文件

七、请求参数

说明:

Line 1: 导入reqeust对象

Line 5: 通过reqeust.method获取请求方法

Line 6: 通过reqeust.args获取GET请求提交的参数

访问浏览器http://localhost:9001/users/?id=123

Line 8: 通过reqeust.form获取POST请求提交的参数

通过curl访问 http://localhost:9001/users/

若需要上传文件则需要使用request.files获取提交的参数并通过save函数保存到服务器上

八、cookie

说明:

Line 1: 导入make_response函数

Line 4: 通过make_response创建response对象

Line 5: 设置cookie信息locale=zh_CN

Line 6: 获取cookie中信息

九、会话

说明:

Line 1: 导入session对象

Line 9: 在session中存储信息

Line 2: 导入重定向函数redirect

Line 10: 重定向到/users/

Line 16: 获取session中存储的信息

Line 20: 删除session中的信息

Line 21: 销毁session中的所有信息

Line 4: 设置session签名所使用的密钥, 可以使用os.urandom(32)来生成强壮的密钥

 Python交流群:238757010

Flask 框架 简介的更多相关文章

  1. Flask框架简介,常用扩展包及两大核心

    Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都 ...

  2. Flask框架简介

    Flask框架诞生于2010年,是Armin ronacher 用python语言基于Werkzeug工具箱编写的轻量级Web开发框架! Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展. ...

  3. Flask框架(一)—— Flask简介

    Flask框架(一)—— Flask简介 目录 Flask框架介绍 一.Flask简介 二.flask安装与使用 1.安装 2.使用 3.简单案例——flask实现用户登录 Flask框架介绍 一.F ...

  4. python web框架简介Bottle Flask Tornado

    Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. ? 1 2 3 4 pip inst ...

  5. Flask框架搭建一个日程表

    目录 前言 项目介绍 技术栈 Flask Web开发流程 一.搭建环境 1.1: 创建虚拟环境 1.2: 安装依赖包 1.3: 创建依赖包列表文件 1.4: 测试hello word 二.应用程序开发 ...

  6. Flask框架从入门到实战

    Flask简介: Flask是一个使用 Python 编写的轻量级 Web 应用框架,基于 WerkzeugWSGI工具箱和 Jinja2模板引擎.使用 BSD 授权. Flask也被称为 " ...

  7. flask框架----flask-session组件

    简介 flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方,如: redis:保存数 ...

  8. python之Flask框架

    一.简单的Flask框架 1)flask简介 Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序. 这个 wdb 应用程序可以使一些 we ...

  9. Flask 入门一( flask 框架和 flask-script 库)

    Flask 入门一( flask 框架 和 flask-script 库) 一.Flask框架: 1.简介 Flask是一个非常小的Python Web框架,被称为微型框架:只提供了一个稳健的核心,其 ...

随机推荐

  1. cap deploy:setup报错

    今天部署cap的时候,setup出现以下错误: 查询半天未果,不过最后还是在google找到了,可见度娘极为不靠谱! I had the same error on deploy:setup with ...

  2. Stern-Brocot Tree

    在<具体数学>4.5中看到了SB-Tree,觉得非常有趣,就去研究了一下. 首先介绍一下Stern-Brocot Tree.Stern-Brocot Tree是一种能将所有的最简分数都表示 ...

  3. Azure ARM (18) 将传统的ASM VM迁移到ARM VM (1)

    <Windows Azure Platform 系列文章目录> 目前很多客户陆续的把传统ASM VM迁移至ARM VM.我这里简单介绍一下. 整个迁移过程分为: 1.Validate,Az ...

  4. Spring3.0官网文档学习笔记(二)

    1.3 使用场景 典型的成熟的spring web应用 spring使用第三方框架作为中间层 远程使用场景 EJB包装 1.3.1 依赖管理.命名规则(包)     spring-*.jar *号代表 ...

  5. Gradle笔记——构建基础

    本篇文章主要介绍一下Gradle的构建基础. 它看起来似乎和android项目没多大关系.不能让人一下子理解android项目中的Gradle配置文件,可是这篇基础真的非常重要. 学习Gradle前, ...

  6. Bootstrap的js插件之按钮(button)

    1)属性: data-loading-text="载入中..."--使button呈现载入状态: data-toggle="button"--使按钮可以切换状态 ...

  7. Maste Note for OCR / Vote disk Maintenance Operations (ADD/REMOVE/REPLACE/MOVE)

    Doc ID 428681.1 Applies to: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.1.0 [R ...

  8. 自学WPF之Binding(一)

    Binding的重要性就不作介绍了,是作为数据交互的支撑,下面来介绍一下为Binding指定源(Source)的几种方法: 把普通CLR类型的单个对象指定为Source:包括.NET Framewor ...

  9. 关于SQLALCHEMY之(一)

    SQLALCHEMY是一个不可靠的方案.对于初级开发者而言,并不如SQL语句来得简明. 或者说,我不知道是不是所有的ORM数据库对象映射方案都存在这么一种情况.纯以开发逻辑而言.下述两段代码的结论是一 ...

  10. Html 段落自动换行

    1.段落换行 在 Html 中,关于段落换行,是我们经常遇见的问题,那么正如我下图没加换行代码所示: 在网页上的显示的样式,是这样的: 你可以看见,原本的样式,不会自动换行.在 div 中,加入一个样 ...