聊聊Flask的项目结构(一)——怎么使用蓝图使项目代码模块化

.idea文件夹是Pycharm IDE的缓存文件,这个是我推荐大家使用的IDE

manage.py 是启动服务的文件,之前我们也把视图路由放在这个文件中,这在实战中是不推荐的,因为如果我们有很多个页面的话,单个manage.py文件都会非常的大,管理和维护起来非常的不方便。

因此我们需要把视图路由独立开来(就是@app.route(“/”)那一部分),在这个时候使用蓝图(blueprint)来划分我们不同的功能模块就显得非常的重要。

什么是蓝图(blueprint)

http://www.zhihu.com/question/31748237/answer/55313054

知乎的答案已经很详细啦,其实简而言之呢就是在同一个app内实现代码的模块化,不同的功能可以封装成不同的Package,管理起来方便的多(有点类似django的app)。

首先我们新建一个名为weixin的python package,然后再在weixin文件夹中新建一个名为admin的python package

在Pycharm中新建的Python Package文件夹下默认有一个init.py的文件,到时我们实例化整个Flask应用,蓝图各个模块的蓝图对象就是在这些文件。

首先我们先在weixin文件夹的根目录下的init.py文件中创建Flask对象(就是将原先写在manage.py中的代码搬到这里)。即:

weixin/init.py 第一部分代码

from flask import Flask

创建一个flask对象

app = Flask(__name__)

接下来我们在weixin下的admin文件夹(即假设我们要开发管理员后台的代码文件夹)中的init.py中创建一个蓝图对象

weixin/admin/init.py

引入blueprint

from flask import Blueprint

创建一个blueprint对象

admin = Blueprint("admin",__name__)

引入视图文件(这里要在admin下创建一个views.py的文件),记得,引入views视图文件一定要在创建蓝图对象的之后

from . import views

对from import的语法不熟悉的朋友建议先熟悉下python先

接下来就要回到weixin下的init.py下注册我们刚才创建的这个admin的蓝图对象了。

weixin/init.py 第二部分代码

从admin包中引入admin并将其赋值给admin_blueprint

from .admin import admin as admin_blueprint

注册蓝图

app.register_blueprint(admin_blueprint, url_prefix='/admin')

register_blueprint是注册蓝图的方法,url_prefix是访问这个蓝图根目录的链接前缀

,像这里把admin作为链接的前缀,那么要访问admin视图文件的根目录的话就是

www.abc.com/admin

接下来我们在视图文件中简单的写一个helloworld的根目录视图函数

weixin/admin/views.py

from . import admin

@admin.route("/")

def index():

    return "Hello World!"

在这里要用admin.route而不是app.route,要注意(即对应蓝图的名称)。

然后manage.py文件修改后如下所示

from weixin import app

if __name__ == "__main__":

    app.run(debug=True)

接下来在cmd中运行整个应用

python manage.py

就可以看到蓝图注册成功,访问admin时会显示admin下的视图函数。

其实整个蓝图的功能就这么简单,当然如果你不喜欢使用也没关系,但是整个项目到达一定的程度时,使用蓝图会是的视图文件的管理变得相对简单,各蓝图需要引用的其他模块都可以独立开来,所以的小编我个人的建议是最好还是使用这个蓝图。

如无意外的化明天应该会讲一下Flask项目结构中静态文件的管理,有这方面需求的朋友可以继续关注哦!

最后附上这次的源码,其中的venv文件请先删除后再根据自己的环境重新创建,目测本次的源码应该还是兼容Python2的。

链接:http://share.weiyun.com/ead1f3b31420b043890aa8af508ba566 (密码:cYLE)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
网约车大数据综合项目是一个集成了各种数据分析和可视化技术的项目,其中数据可视化是其中非常重要的一部分。数据可视化通过图表、地图等形式,将大量的数据信息以直观、易懂的方式展现出来,帮助项目团队和决策者更好地理解和利用数据。 Flask是一款轻量级的Python Web框架,ECharts是一个由百度开发的基于JavaScript的数据可视化库,它们可以很好地配合使用来实现数据可视化的需求。在网约车大数据综合项目中,我们可以利用Flask框架搭建Web应用程序的后端,通过Python语言处理数据,并结合ECharts库来实现前端数据可视化的功能。 具体来说,我们可以使用Flask来构建Web应用的后台服务器,接收用户的请求,并调用相应的数据处理函数。同时,利用ECharts库提供的丰富图表类型和交互功能,将经过处理的数据转换成直观的图表展示,例如折线图、柱状图、地图等。这样,用户就可以通过浏览器访问我们的Web应用,实时查看和分析网约车的相关数据,包括订单量、车辆分布、用户乘车轨迹等内容。 通过数据可视化flask echarts,我们不仅可以帮助项目团队更好地理解和利用网约车的大数据信息,还可以为决策者提供直观、准确的数据支持,帮助他们制定更科学合理的运营策略和规划。这将有助于提升网约车行业的整体运营效率和用户体验,进而推动行业的可持续发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值