Flask解析(二)路由(werkzeug.routing里 Map, Rule)
特点:Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本;Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。
区别:1Flask使用 BSD 授权;2Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。3Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
Flask是一个使用Python编写的轻量级Web应用框架,凭借更灵活、轻便、安全且容易上手的特性,成为企业常用的Python框架之一。在完成Web前端、Linux以及MySQL相关的课程之后,专业的杭州Python学习班都会讲解Flask框架知识,以下是整理的相关知识点。
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架。开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。
默认情况下,Flask不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask支持用扩展来给应用添加这些功能,如同是Flask本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。
Flask框架的特点:
1)Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库;
2)入门简单,即便没有多少web开发经验,也能很快做出网站;
3)非常适用于小型网站;
4)非常适用于开发Web服务的API;
5)开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验。
Flask框架运行解释
1app = Flask(__name__)
创建Flask对象app,Flask类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序中,Python的__name__变量就是所需要的值。
2@approute('/')
web浏览器把请求发送给Web服务器,Web服务器再把请求发送给Flask程序实例。程序实例需要知道对每个URL请求运行哪些代码,所以保存了一个URL到Python函数的映射关系。处理URL和函数之间的关系的程序称为路由。在Flask程序中定义路由的最简便方式,是使用程序实例提供的approute修饰器,把修饰的函数注册为路由。route()装饰器告诉 Flask什么样的URL 能触发我们的函数。这和Java中的注释有异曲同工之妙。修饰器是Python语言的标准特性,可以使用不同的方式修改函数的行为。惯常用法是使用修饰器把函数注册为事件的处理程序。
3def index():函数
index()函数放在@approute('/')后面,所以就是把index()函数注册为路由。如果部署程序的服务器域名为http://127001:5000/,在浏览器中访问http://127001:5000/后,会触发服务器执行index()函数。
4@approute('/user/')
同@approute('/'),如果部署程序的服务器域名为http://127001:5000/,在浏览器中访问http://127001:5000/后,会触发服务器执行下方修饰函数。
5apprun(debug=True)
程序实例用run方法启动Flask继承Web服务器。
6if __name__ == '__main__'
当Python解释器,读py文件,它会执行它发现的所有代码。在执行代码之前,它会定义一些变量。例如,如果这个py文件就是主程序,它会设置__name__变量为"__main__"。如果这个py被引入到别的模块,__name__会被设置为该模块的名字。
1、方法
flask运行服务器后,会发现只有你自己的电脑可以使用服务,而网络中的其他电脑却不行。
缺省设置就是这样的,因为在调试模式下该应用的用户可以执行你电脑中的任意
Python 代码。
关闭调试或信任你网络中的用户,那么可以让服务器被公开访问。只要像这样改变 run() 方法的调用:
apprun(host='0000', port=80)
2、说明
apprun(host='0000', port=80)
此代码可以让主机通过本机IP和80端口访问服务器。
3、函数说明
run(host=None, port=None, debug=None, options)
在本地开发服务器上运行应用程序。 如果调试标志被设置,服务器将自动重新加载代码更改,并显示一个调试器,以防发生异常。
如果要以调试模式运行应用程序,但禁用交互式调试器上的代码执行,则可以将use_evalex = False作为参数传递。 这将使调试器的追溯屏幕保持活动,但禁用代码执行。
0条评论