一、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. (四):C++分布式实时应用框架——状态中心模块

    C++分布式实时应用框架--状态中心模块 上篇:(三):C++分布式实时应用框架--系统管理模块 技术交流合作QQ群:436466587 欢迎讨论交流 版权声明:本文版权及所用技术归属smartguy ...

  2. 过渡与动画 - steps调速函数&CSS值与单位之ch

    写在前面 上一篇中我们熟悉五种内置的缓动曲线和(三次)贝塞尔曲线,并且基于此完成了缓动效果. 但是如果我们想要实现逐帧动画,基于贝塞尔曲线的调速函数就显得有些无能为力了,因为我们并不需要帧与帧之间的过 ...

  3. Nginx的反向代理与负载均衡

    1.1 集群是什么 简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服器.这些服务器之间可 ...

  4. And【sql语句之为何用and一个字段两个值得不到表中的数据】

    一.[一个表的一个字段的多个条件用and连接] 用and是查不到值的, and是多个条件同时成立, 也就是一个字段是不能同时等于两个值的. '; 二[相同两个表的两个相同字段的查询用and连接] '; ...

  5. Golang中的信号处理

    信号类型 个平台的信号定义或许有些不同.下面列出了POSIX中定义的信号. Linux 使用34-64信号用作实时系统中. 命令 man 7 signal 提供了官方的信号介绍. 在POSIX.1-1 ...

  6. Linux性能及调优指南(翻译)之Linux进程管理

    本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...

  7. 数据库中的參照完整性(Foreign Key)

    之前在项目中遇到了这样一个问题,我举得简单的样例来说明. 比方我们有两个表,一个表(department)存放的是部门的信息,比如部门id,部门名称等:还有一个表是员工表(staff),员工表里面肯定 ...

  8. 前端优化之动画为什么要尽量用css3代替js

    导致JavaScript效率低的两大原因:操作DOM和使用页面动画.通常我们会通过频繁的操作 DOM的CSS来实现视觉上的动画效果,导致js效率低的两个因素都包括在内了在频繁的操作DOM和CSS时,浏 ...

  9. 浅析node.js

    大家好,今天来给大家讨论node.js这个东西,说起这个东西啊,可能大家已经很熟悉了,因为现在市场上运用的越来越广泛,毕竟它的优点还是有目共睹的! 那么,什么是node.js呢?官方给出了这样的定义: ...

  10. 解决 ASP.NET Core Hangfire 未授权(401 Unauthorized)

    相关文章:ASP.NET Core 使用 Hangfire 定时任务 ASP.NET Core Hangfire 在正式环境发布之后,如果访问 http://10.1.2.31:5000/hangfi ...