没有合适的资源?快使用搜索试试~ 我知道了~
flask教程
资源推荐
资源详情
资源评论
Flask 简介
什么是 Flask?
Flask 是一个用 Python 编写的 Web 应用程序框架。Flask 基于 Werkzeug(WSGI 工具包)
和 Jinja2 模板引擎。
什么是 Web Framework?
Web Application Framework(Web 应用程序框架)或简单的 Web Framework(Web 框架)
表示一个库和模块的集合,使 Web 应用程序开发人员能够编写应用程序,而不必担心协议,
线程管理等低级细节。
WSGI
Web Server Gateway Interface(Web 服务器网关接口,WSGI)已被用作 Python Web 应用
程序开发的标准。WSGI 是 Web 服务器和 Web 应用程序之间通用接口的规范。
Werkzeug
它是一个 WSGI 工具包,它实现了请求,响应对象和实用函数。这使得能够在其上构建 web
框架。Flask 框架使用 Werkzeug 作为其基础之一。
jinja2
jinja2 是 Python 的一个流行的模板引擎。Web 模板系统将模板与特定数据源组合以呈现动
态网页。
Flask 通常被称为微框架。它旨在保持应用程序的核心简单且可扩展。Flask 没有用于数据库
处理的内置抽象层,也没有形成验证支持。相反,Flask 支持扩展以向应用程序添加此类功
能。一些受欢迎的 Flask 扩展将在本教程后续章节进行讨论。
Flask 及其依赖项适用于 Python 3,安装 Flask 之前确认已经安装 Python3,本教程默认使用
最新版本 Python3.7
Flask 环境搭建
方法一:为开发环境安装 virtualenv
virtualenv 是一个虚拟的 Python 环境构建器。它可以帮助用户并行创建多个 Python 环境。
因此,它可以避免不同版本的库之间的兼容性问题。
以下命令用于安装 virtualenv:
pip install virtualenv
此命令需要管理员权限。您可以在 Linux / Mac OS 上的 pip 之前添加 sudo 。如果您使用
的是 Windows,请以管理员身份登录。在 Ubuntu 上, virtualenv 可以使用它的包管理安装。
Sudo apt-get install virtualenv
安装后,将在文件夹中创建新的虚拟环境。
mkdir newproj
cd newproj
virtualenv venv
要在 Linux 上激活相应的环境,请使用以下命令:
venv/bin/activate
要在 Windows 上激活相应的环境,可以使用以下命令:
venv\scripts\activate
我们现在准备在这个环境中安装 Flask:
pip install Flask
上述命令可以直接运行,不需要系统范围安装的虚拟环境。
方法二,直接 pip 安装 Flask
打开 cmd,键入以下命令:
pip install Flask
等待安装完成即可,本教程建议,可以暂时不采用安装 virtualenv 虚拟环境,实际生产中再
采用方法一,非虚拟环境对 Flask 的操作是完全一样的。
假设已经安装了 Flask,为了测试 Flask 安装,在编辑器中将以下代码输入 Hello.py 文件中:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
app.run()
那么上面这个代码做了什么?
首先我们导入了这个 Flask 类。这个类的一个实例将是我们的 WSGI 应用程序。
接下来,我们创建此类的实例。第一个参数是应用程序模块或包的名称。如果您使用的是单
个模块(如本示例所示),则应使用__name__,因为根据它是作为应用程序启动还是作为模
块导入,名称将不同('__main__'与实际导入名称相对)。这是必需的,以便 Flask 知道在哪
里查找模板,静态文件等。
然后我们使用 route()装饰器告诉 Flask 应该触发我们的函数的 URL。
该函数被赋予一个名称,该名称也用于为该特定函数生成 URL,并返回我们想要在用户的浏
览器中显示的消息。
必须在项目中导入 Flask 模块。Flask 类的一个对象是我们的 WSGI 应用程序。
Flask 构造函数使用当前模块(__name __)的名称作为参数。
Flask 类的 route()函数是一个装饰器,它告诉应用程序哪个 URL 应该调用相关的函数。
app.route(rule, options)
rule 参数表示与该函数的 URL 绑定。
options 是要转发给基础 Rule 对象的参数列表。
在上面的示例中,'/ ' URL 与 hello_world()函数绑定。因此,当在浏览器中打开 web 服务器
的主页时,将呈现该函数的输出。
最后,Flask 类的 run()方法在本地开发服务器上运行应用程序。
app.run(host, port, debug, options)
所有参数都是可选的
序号 参数与描述
1
host
要监听的主机名。 默认为 127.0.0.1(localhost)。设置为“0.0.0.0”以使服务器在外部可用
2
port
默认值为 5000
3
debug
默认为 false。 如果设置为 true,则提供调试信息
4
options
要转发到底层的 Werkzeug 服务器。
这里注意,如果使用 python 自带的 idle 运行的时候可能会报以下错误:
Traceback (most recent call last):
File “C:/learn/python/xuexi/web/demoflask/app.py”, line 27, in
app.run();
File “C:\Users\zhang\AppData\Local\Programs\Python\Python36\lib\site-
packages\flask\app.py”, line 938, in run
cli.show_server_banner(self.env, self.debug, self.name, False)
File “C:\Users\zhang\AppData\Local\Programs\Python\Python36\lib\site-
packages\flask\cli.py”, line 629, in show_server_banner
click.echo(message)
File “C:\Users\zhang\AppData\Local\Programs\Python\Python36\lib\site-
packages\click\utils.py”, line 217, in echo
file = _default_text_stdout()
File “C:\Users\zhang\AppData\Local\Programs\Python\Python36\lib\site-
packages\click_compat.py”, line 621, in func
rv = wrapper_func()
File “C:\Users\zhang\AppData\Local\Programs\Python\Python36\lib\site-
packages\click_compat.py”, line 385, in get_text_stdout
rv = _get_windows_console_stream(sys.stdout, encoding, errors)
File “C:\Users\zhang\AppData\Local\Programs\Python\Python36\lib\site-
packages\click_winconsole.py”, line 261, in _get_windows_console_stream
func = _stream_factories.get(f.fileno())
io.UnsupportedOperation: fileno
只要不用 idle 执行就不会出错了,不影响后续使用。改用 cmd 下 Python 执行或者 pycharm
等运行都能成功。
Windows 环境下在 cmd 下输入以下命令执行:
Python Hello.py
Python shell 中的消息通知:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在浏览器中打开上述 URL(localhost:5000)。将显示“Hello World”消息。
调试模式
通过调用 run()方法启动 Flask 应用程序。但是,当应用程序正在开发中时,应该为代码中的
每个更改手动重新启动它。为避免这种不便,请启用调试支持。如果代码更改,服务器将自
行重新加载。它还将提供一个有用的调试器来跟踪应用程序中的错误(如果有的话)。
在运行或将调试参数传递给 run()方法之前,通过将 application 对象的 debug 属性设置为
True 来启用 Debug 模式。
app.debug = True
app.run()
或
app.run(debug = True)
Flask 路由
现代 Web 框架使用路由技术来帮助用户记住应用程序 URL。可以直接访问所需的页面,而
无需从主页导航。
正如前面所说,route 装饰器是用于把一个函数绑定到一个 URL 上,例如:
from flask import Flask
app = Flask(__name__)
如果访问/,浏览器返回“Index Page”
@app.route('/')
def index():
return 'Index Page'
如果访问/hello,浏览器返回“Hello,World”
@app.route('/hello')
def hello():
return 'Hello, World'
if __name__ ="__main__":
app.run()
访 问 地 址 http://127.0.0.1:5000 , 浏 览 器 页 面 会 显 示 Index Page ; 如 果 访 问 地 址
http://127.0.0.1:5000/hello,浏览器页面会显示 Hello, World!。这样就实现了通过访问不同
的 URL 地址从而响应不同的页面。
不仅如此!你可以动态地构造 URL 的特定部分(正则表达式),也可以在一个函数上绑定
多个不同的规则。
application 对象的 add_url_rule()函数也可用于将 URL 与函数绑定,如上例使用 route()可以
改成如下:
from flask import Flask
app = Flask(__name__)
#如果访问/,浏览器返回“Index Page”
def index():
return 'Index Page
#如果访问/hello,浏览器返回“Hello,World”
def hello():
剩余32页未读,继续阅读
资源评论
福尔摩星儿
- 粉丝: 0
- 资源: 229
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- #P0015. 全排列 超级简单
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功