python web开发框架flask,Python Web 开发框架Flask快速入门

Web 2.0专注于让网站上的用户生成内容,自从它开始,网络编程就成为了热门话题。一直以来都可以使用Python创建网站,但这是一个相当无聊的任务。因此,有很多框架和工具被创造出来,帮助开发人员创建更快,更强大的网站。本文描述了一些将Python和Web服务器组合以创建动态内容的方法。这不是一个完整的介绍,因为这个话题过于广泛,不可能在一篇文章中讲清楚。所以本次课程主要讲解PythonWeb框架中常用的Flask框架的使用。

Flask作为Web框架,它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。

一切从客户端发起请求开始。

所有Flask程序都必须创建一个程序实例。当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。此时,Web服务器使用一种名为WEB服务器网关接口的WSGI(Web Server Gateway Interface)协议,把来自客户端的请求都交给Flask程序实例。Flask使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。在Flask程序中,路由一般是通过程序实例的装饰器实现。通过调用视图函数,获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后由Flask返回响应数据给浏览器,最后浏览器显示返回的结果。

一个最小的 Flask 应用看起来会是这样,找到一个目录新建一个Python文件,比如叫做 ,编写代码如下:

运行Flask项目只需要执行编写的Python文件即可:

运行成功会看到如下页面:

在浏览器访问:

如果你运行了这个服务器,你会发现它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问。在调试模式下,用户可以在你的计算机上执行任意 Python 代码。因此,这个行为是默认的。

如果你禁用了 debug 或信任你所在网络的用户,你可以简单修改调用 run() 的方法使你的服务器公开可用,如下:

这会让操作系统监听所有网络。

现代 Web 应用的 URL 十分优雅,易于人们辨识记忆,这一点对于那些面向使用低速网络连接移动设备访问的应用特别有用。如果可以不访问索引页,而是直接访问想要的那个页面,他们多半会笑逐颜开而再度光顾。

如上所见, route() 装饰器把一个函数绑定到对应的 URL 上。

这里是一些基本的例子:

但是,不仅如此!你可以构造含有动态部分的 URL,也可以在一个函数上附着多个规则。

怎么给服务器的用户呈现一个漂亮的页面呢?

肯定需要用到 html、css ,如果想要更炫的效果还要加入 js ,问题来了,这么一大堆字段串全都写到视图中通过  返回,这样定义就太麻烦了吧,因为定义字符串是不会出任何效果和错误的,如果有一个专门定义前端页面的地方就好了。

为此Flask 配备了 Jinja2 模板引擎。

Flask 会在  文件夹里寻找模板。所以,如果你的应用是个模块,这个文件夹应该与模块同级;如果它是一个包,那么这个文件夹作为包的子目录:

例如在应用下的文件夹下创建模板

接下来你可以使用  方法来渲染模板。你需要做的一切就是将模板名和你想作为关键字的参数传入模板的变量。这里有一个展示如何渲染模板的简例:

在  中添加如下代码:

运行Flask 程序输入  即可看到如下结果:

模板中使用变量:

在 html 中定义在 flask 中设定变量的 和 :

使用判断语句:

使用循环语句:

我们之前操作数据库是通过写语句,那么能不能不写语句就可以操作数据库呢? 答案是可以的。

ORM框架

O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程。

在Flask中使用数据库,需要安装一个的扩展。

要连接mysql数据库,还需要安装

下列代码即可连接本机MySQL的数据库,假设用户名为,密码为

代码解释:

返回名字等于wang的所有人

查询角色的所有用户:

查询用户所属角色:

总的来说使用Flask进行数据库开发的步骤如下:

配置连接数据库的选项定义模型类通过类和对象完成数据库增删改查操作

基本知识点已经学完了,接下来完成一个示例项目:

现在还需要的代码包括三个方面,三个方面顺序不分先后。

定义视图定义模板连接操作数据库

目标是完成城市应用的增删改查功能。

你可能感兴趣的:(python,web开发框架flask)