神级程序员用一篇文章教你如果熟练使用Flask中的模块!非常实用
Flask是一个轻量级的Web框架。虽然是轻量级的,但是对于组件一个大型的、模块化应用也是能够实现的,“蓝图”就是这样一种实现。对于模块化应用的实现,在Flask 0.2版本中进行了设计。本文暂时不对“蓝图”做详细的介绍,而是先从0.2版本中的 Module 类的实现讲起。其实,“蓝图”的实现和 Module 类的实现很相似。在给大家分享之前呢,还是要介绍一下小编自己弄的一个交流群,像大家推荐一个学习氛围非常好的群,大家都非常乐意解答,乐意交流沟通,就等你的到来。Python学习群:643692991,如果你正在学习python,小编欢迎你加入,大家都是Python党,不定期分享干货(只有Python爬虫,框架,零基础都有),包括我自己整理的一份2017最新的Python资料和零基础入门教程,欢迎初学和进阶中的小伙伴。
为什么实现模块化应用
对于大型应用而言,随着功能的不断增加,整个应用的规模也会扩大。按照一定的规则将应用的不同部分进行模块化,不仅能够使整个应用逻辑清晰,也易于维护。例如,在Flask中,你也许想像如下构建一个简单的项目:
/myapplication /__init__.py /views /__init__.py /admin.py /frontend.py
以上目录结构中,我们将之前的Flask单文件修改成了一个应用包,所有的视图函数都在 views下,并且按照功能分为了 admin 和 frontend 两个部分。为了实现这种模块化应用的构建,在0.2版本中Flask实现了 Module 类。这个类实例可以通过注册的方式,在Flask应用创建后添加进应用。
Module类实现了一系列的方法:
以上方法除了 add_url_rule 和 _record 外,都可以作为装饰器在自己的模块中使用,这些装饰器都返回一个函数。通过调用 _record 方法,可以将装饰器返回的函数放到 _register_events中。当Flask应用创建之后,通过运行 _register_events 列表中的函数,可以将这个模块注册到应用中去。
Flask应用怎么注册一个Module
以下我们以一个例子来说明Flask应用怎么注册一个 Module 。
1. 项目结构
这个简单的例子项目结构如下:
以上两个模块中,我们首先分别创建了一个 Module 类,然后像写一般的视图函数一样,为每个模块增加一些规则。之后,可以在创建Flask应用的时候将这些模块引入,就可以注册了。
在app.py中:
根据以上的步骤,我们就可以测试这个应用。分别以 /blog 和 /admin 为URL前缀,就可以访问blog 和 admin 两个模块了。
2. 注册Module时发生了什么
根据上面的例子,只要简单的调用Flask应用的 register_module 方法,就可以注册一个 Module 了。关于 register_module 方法的代码如下:
通过以上代码可以发现:
以上面例子中不同模块的URL绑定来讲,通过注册,应用 app 现形成了如下的URL“地图”:
这样,就可以把不同模块的URL规则放在一起,并在 endpoint 和视图函数之间形成对应关系。关于Flask应用中URL处理,可以参考:Flask应用中的URL处理。
上一篇:小米MIX2真机上手:不出意外,这回肯定能大量供货了
下一篇:不仅是贝克汉姆的老婆,还是时尚设计师,贝嫂的品牌太美了
标签:
今日话题更多>
- 武汉大学信息门户是什么 武汉大学信息门户是武汉大学官方网站的入口,它为武汉大学师生员工提供信息服务和网络应用入口。信息门户网址为:ehall.whu.edu.cn。 信息门户包含以下主要功能: 1. 统一身份……
- 壹米滴答物流单号查询方法 壹米滴答物流单号查询可通过以下方式进行: 1. 登录壹米滴答官网 登录www.yimidida.com网址,点击页面右上角的登录按钮,输入用户名和密码进行登录。登录成功后,在用户中心可……
- 壹米滴答物流是什么平台 壹米滴答是一家中国国际物流快递公司,提供国内外物流配送服务。 1. 公司简介 壹米滴答成立于2013年,由深圳市壹米滴答供应链管理有限公司运营。现已开通200多个国家和地区的……
黑帽学习 更多 >>
-
黑帽seo技术主要有哪些,为什么
从搜索引擎的算法出来之后,就有很多的人开始研究如何比较快的做收录和排名,那个时候并没有人把…… -
采集站怎么样才不会死,采集站应
现在有不少的站长正在一批一批的做采集站,因为这种网站比较的省时省力,不过也有其非常大的弊端…… -
黑帽seo有什么高深的技术吗
搜索引擎虽然只是一个入口,但是这个入口搜索出来的结果的排名是具有非常大价值的,有很多的人都…… -
蜘蛛池有效果吗,目前比较好用的
说起蜘蛛池程序,可能很多做黑帽的人比较了解这个东西,它主要就是为了快速的搭建蜘蛛池,然后引…… -
发包技术教程有用吗,发包排名虚
对于很多做黑帽seo的人来说,技术手段是需要不断研发和提升的,但是搜索引擎对于这些黑帽的技术…… -
网站总是被劫持怎么办,网络被劫
其实做起来一个网站是非常花时间和精力的,有不少的站长辛辛苦苦的花了很长的时间去做了一个网站…… -
什么叫做强引蜘蛛,强引蜘蛛软件
蜘蛛对于收录来说是一个非常重要的东西,我们可以说有蜘蛛不一定会收录,但是想要收录就一定要有…… -
如何去搭建一个蜘蛛池,需要准备
对于一些做了很久seo的人来说,肯定会接触到蜘蛛池这个东西,因为蜘蛛池对于收录这块的作用是非…… -
目前比较好用的蜘蛛池有哪些,小
做seo的肯定都了解蜘蛛池(如果对于蜘蛛池不是很了解,可以参考《 蜘蛛池是什么 》这篇文章)是…… -
强引蜘蛛原理是怎么样的,蜘蛛池
对于网站的收录来说,蜘蛛是主要的抓取工具,虽然说我们可以从一些提交入口里面去提交,但是还是……