Flask 框架 简介
一、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, 图片等资源文件
说明:
静态资源文件需要放置在static目录
在模板中使用/static/filename.suffix的格式引入文件
可以使用
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 框架 简介的更多相关文章
- Flask框架简介,常用扩展包及两大核心
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都 ...
- Flask框架简介
Flask框架诞生于2010年,是Armin ronacher 用python语言基于Werkzeug工具箱编写的轻量级Web开发框架! Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展. ...
- Flask框架(一)—— Flask简介
Flask框架(一)—— Flask简介 目录 Flask框架介绍 一.Flask简介 二.flask安装与使用 1.安装 2.使用 3.简单案例——flask实现用户登录 Flask框架介绍 一.F ...
- python web框架简介Bottle Flask Tornado
Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. ? 1 2 3 4 pip inst ...
- Flask框架搭建一个日程表
目录 前言 项目介绍 技术栈 Flask Web开发流程 一.搭建环境 1.1: 创建虚拟环境 1.2: 安装依赖包 1.3: 创建依赖包列表文件 1.4: 测试hello word 二.应用程序开发 ...
- Flask框架从入门到实战
Flask简介: Flask是一个使用 Python 编写的轻量级 Web 应用框架,基于 WerkzeugWSGI工具箱和 Jinja2模板引擎.使用 BSD 授权. Flask也被称为 " ...
- flask框架----flask-session组件
简介 flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方,如: redis:保存数 ...
- python之Flask框架
一.简单的Flask框架 1)flask简介 Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序. 这个 wdb 应用程序可以使一些 we ...
- Flask 入门一( flask 框架和 flask-script 库)
Flask 入门一( flask 框架 和 flask-script 库) 一.Flask框架: 1.简介 Flask是一个非常小的Python Web框架,被称为微型框架:只提供了一个稳健的核心,其 ...
随机推荐
- (四):C++分布式实时应用框架——状态中心模块
C++分布式实时应用框架--状态中心模块 上篇:(三):C++分布式实时应用框架--系统管理模块 技术交流合作QQ群:436466587 欢迎讨论交流 版权声明:本文版权及所用技术归属smartguy ...
- 过渡与动画 - steps调速函数&CSS值与单位之ch
写在前面 上一篇中我们熟悉五种内置的缓动曲线和(三次)贝塞尔曲线,并且基于此完成了缓动效果. 但是如果我们想要实现逐帧动画,基于贝塞尔曲线的调速函数就显得有些无能为力了,因为我们并不需要帧与帧之间的过 ...
- Nginx的反向代理与负载均衡
1.1 集群是什么 简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服器.这些服务器之间可 ...
- And【sql语句之为何用and一个字段两个值得不到表中的数据】
一.[一个表的一个字段的多个条件用and连接] 用and是查不到值的, and是多个条件同时成立, 也就是一个字段是不能同时等于两个值的. '; 二[相同两个表的两个相同字段的查询用and连接] '; ...
- Golang中的信号处理
信号类型 个平台的信号定义或许有些不同.下面列出了POSIX中定义的信号. Linux 使用34-64信号用作实时系统中. 命令 man 7 signal 提供了官方的信号介绍. 在POSIX.1-1 ...
- Linux性能及调优指南(翻译)之Linux进程管理
本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...
- 数据库中的參照完整性(Foreign Key)
之前在项目中遇到了这样一个问题,我举得简单的样例来说明. 比方我们有两个表,一个表(department)存放的是部门的信息,比如部门id,部门名称等:还有一个表是员工表(staff),员工表里面肯定 ...
- 前端优化之动画为什么要尽量用css3代替js
导致JavaScript效率低的两大原因:操作DOM和使用页面动画.通常我们会通过频繁的操作 DOM的CSS来实现视觉上的动画效果,导致js效率低的两个因素都包括在内了在频繁的操作DOM和CSS时,浏 ...
- 浅析node.js
大家好,今天来给大家讨论node.js这个东西,说起这个东西啊,可能大家已经很熟悉了,因为现在市场上运用的越来越广泛,毕竟它的优点还是有目共睹的! 那么,什么是node.js呢?官方给出了这样的定义: ...
- 解决 ASP.NET Core Hangfire 未授权(401 Unauthorized)
相关文章:ASP.NET Core 使用 Hangfire 定时任务 ASP.NET Core Hangfire 在正式环境发布之后,如果访问 http://10.1.2.31:5000/hangfi ...