APP下载

基于Python语言及Flask框架快速开发网站的研究

2019-01-18马继昌李建兵刘玉冬辽宁科技大学国际金融与银行学院

数码世界 2018年12期
关键词:表单视图路由

马继昌 李建兵 刘玉冬 辽宁科技大学国际金融与银行学院

1. Python语言简介

Python语言是诞生于1989年的一门高级编程语言,由于其编写的脚本程序简单易懂,语法易于理解,使得初学者入门容易,而且深入学习下去,可以编写出复杂的程序,因此越来越受到人们的欢迎,近来更是一直处于TIOBE编程语言排行榜前三名的位置。

Python语言凭借易于维护、扩展库丰富、跨平台、可移植,并能够支持主流商业数据库、以及GUI编程及可嵌入的特点,广泛应用在web开发、数据分析、游戏开发、系统运维、人工智能、物联网等行业中。

2. python Web编程及网站建设

2.1 轻量级Web框架Flask

WEB编程技术主要用于进行网站建设,很多网站使用Python语言进行开发。Python作为一门通用的编程语言,同样适合于WEB开发领域。在使用Python开发WEB项目时,可以有多种Web框架进行选择,如Django、Flask、Tornado等,其中Flask是用 Python 编写的轻量级WEB应用框架,它其实是 协助开发者快速开发Web应用程序的一套功能代码。Flask自开发伊始就被设 计为可扩展的框架,它具有一个包含基本服务的强健核心,其他功能则可通过扩展实现。Flask WSGI 组件采用 Werkzeug,模板渲染引擎采用Jinja2。Flask框架的核心是路由模块werkzeug及模板引擎 Jinja2,Flask常用的扩展包有操作数据库的Flask-SQLalchemy,用于插入脚本的Flask-script,管理迁移数据库的Flask-migrate以及Session存储方式指定的Flask-Session。

2.2 MVC模式

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。Controller(控制器)是应用程序中处理用户交互的部分,负责从视图读取数据,控制用户输入,并向模型发送数据。MVC 分层有助于管理复杂的应用程序,是程序员在一个时间内专门关注一个方面,同时也让应用程序的测试更加容易。MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

3. 应用Flask框架设计网站

3.1 初始化

程序初始化代码如下:

所有 Flask 程序都必须创建一个程序实例。Web 服务器使用Web 服务器网关接口 WSGI协议,把接收自客户端的所有请求都转交给这个对象处理。程序实例app是 Flask 类的对象。Flask类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序 中,Python 的 __name__ 变量就是所需的值。将构造函数的 name 参数传给 Flask 程序,Flask 用这个参数决定程序的根目录,以便稍后能够找到相对于程 序根目录的资源文件位置。

3.2 路由和视图函数

客户端(例如 Web 浏览器)把请求发送给 Web 服务器,Web服务器再把请求发送给程序实例。程序实例需要知道对每个 URL请求运行哪些代码,所以保存了一个URL 到Python 函数的映射关系。处理 URL 和函数之间关系的程序称为路由。在Flask程序中定义路由的最简便方式,是使用程序实例提供的 app.route 修饰器,把修饰的函数注册为路由。下面的例子说明了如何使用这个修饰器声明路由:

像home() 这样的函数称为视图函数(view function)。视图函数返回的响应可以是包含 HTML 的简单字符串,也可以是复杂的表单。

3.3 启动服务器

程序用run方法启动Flask集成的开发Web服务器:

__name__=='__main__' 是Python的常用方法,在这里确保直接执行这个脚本时才启动Web服务器。

3.4 读取表单

在编写URL处理函数时,除了配置URL外,从HTTP请求拿到用户数据也是非常重要的。Web框架都提供了自己的API来实现这些功能。Flask通过request.form['name']来获取表单的内容。

3.5 使用模板

Web应用不仅仅是处理逻辑,前端展示给用户的HTML页面也非常重要。HTML不仅要正确,还要通过CSS美化,再加上复杂的JavaScript脚本来实现各种交互和动画效果。因此生成HTML页面的难度很大。使用模板技术使得这一过程变得相对容易。模板是一个包含响应文本的文件,其中包含用占位变量表示的动态部分,其具体值只在请求的上下文中才能知道。使用真实值替换变量,再返回最终得到的响应字符串,这一过程称为渲染。为了渲染模板,Flask使用了一个名为Jinja2的强大模板引擎。

通 过MVC在Python代 码 中 处 理M:Model和C:Controller,而V:View是通过模板处理的,这样就成功地把Python代码和HTML代码最大限度地分离了。

使用模板的另一大好处是,模板改起来很方便,而且,改完保存后,刷新浏览器就能看到最新的效果,这对于调试HTML、CSS和JavaScript的前端工程师来说非常重要。在Jinja2模板中,用{{name }}表示一个需要替换的变量。很多时候,还需要循环、条件判断等指令语句,在Jinja2中,用{%... %}表示指令。

此外,Flask还有许多扩展程序包可供开发时使用,如用于高性能数据库访问的SQLAlchemy和用于表单编程的WTForm等等。

4. 结语

通过以上简单的步骤,使用Flask框架结合MVC编程模式,可以快速实现网站的开发,如果在网站中融入Bootstrap等前端模板,就可以开发出非常漂亮的基于Html5的响应式网站,相比其他开发语言,具有快速高效的优势。

猜你喜欢

表单视图路由
移动App表单组件体验设计
数据通信中路由策略的匹配模式
OSPF外部路由引起的环路问题
路由重分发时需要考虑的问题
浅谈网页制作中表单的教学
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
使用智能表单提高工作效率
Django 框架中通用类视图的用法