Flask blueprint蓝图按功能模块化架构实例

简介:
+关注继续查看

使用flask作为开发框架,一定要按功能模块化,否则到了后面项目越大,开发速度就越慢。

1Flask模块化结构规划

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@yang-218 yangyun]# tree
.
├── asset               #资产功能目录
│   ├── __init__.py
│   ├── models.py        #资产数据库结构文件
│   └── views.py         #资产视图文件
├── user                #用户功能目录
│  ├──__init__.py
│  ├── models.py          #用户数据库结构文件
│  └── views.py           #用户视图配置文件
├── config.py             #公共配置文件
├── requirements.txt        #需要的安装包
├── run.py               #主运行文件
├── static               #静态文件目录,css,js, image等
└── templates             #静态页面存放目录
   ├── asset           #asset功能模块页面存放目录
    │  └── index.html
    ├── index.html         #首页
    └── user                        
        └── index.html

2run.py主运行文件配置

[root@yang-218 yangyun]# cat run.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from flask import Flask
from asset import asset
from user import user
  
  
apple=Flask(__name__,
        template_folder='templates'#指定模板路径,可以是相对路径,也可以是绝对路径。 
        static_folder='static',  #指定静态文件前缀,默认静态文件路径同前缀
        #static_url_path='/opt/auras/static',     #指定静态文件存放路径。
         )
apple.register_blueprint(asset,url_prefix='/asset')    #注册asset蓝图,并指定前缀。
apple.register_blueprint(user)      #注册user蓝图,没有指定前缀。
  
if __name__=='__main__':
         apple.run(host='0.0.0.0',port=8000,debug=True)  #运行flask http程序,host指定监听IP,port指定监听端口,调试时需要开启debug模式。


3asset功能模块配置

其它的功能模块配置相似

 

1) __init__.py文件配置

[root@yang-218 asset]# cat __init__.py

1
2
3
4
5
6
7
8
9
from flask import Blueprint
  
asset=Blueprint('asset',
        __name__,
        #template_folder='/opt/auras/templates/',   #指定模板路径
         #static_folder='/opt/auras/flask_bootstrap/static/',#指定静态文件路径
                   )
  
import views

 

2) views.py文件配置

[root@yang-218 asset]# cat views.py

1
2
3
4
5
6
7
from flask import  render_template
from asset import asset
  
@asset.route('/')              #指定路由为/,因为run.py中指定了前缀,浏览器访问时,路径为http://IP/asset/
def index():                         
         print'__name__',__name__
         returnrender_template('asset/index.html')  #返回index.html模板,路径默认在templates下

 

3)前端页面配置

1
[root@yang-218 yangyun]# echo 'This isasset index page...' >templates/asset/index.html

 

4user功能模块配置

此处配置和上述asset的配置一致

1) __init__.py配置

[root@yang-218 yangyun]# cat  user/__init__.py

1
2
3
4
5
from flask import Blueprint
user=Blueprint('user',
                   __name__,
                   )
import views

2) views.py配置

[root@yang-218 yangyun]# cat user/views.py

1
2
3
4
5
6
7
from flask import  render_template
from user import user
  
@user.route('/')
def index():
         print'__name__',__name__
         returnrender_template('user/index.html')

 

3) 静态页面配置

1
echo 'This is User page....'  >templates/user/index.html

 

5requirements.txt文件配置

主要作用是记录需要的依赖包,新环境部署时安装如下依赖包即可,pip安装命令pip install -r requirements.txt

1
2
3
4
5
6
[root@yang-218 yangyun]# catrequirements.txt
Flask==0.10.1
Flask-Bootstrap==3.3.5.6
Flask-Login==0.2.11
Flask-SQLAlchemy==2.0
Flask-WTF==0.12

 

6、浏览器访问测试

后端运行程序

1
2
3
[root@yang-218 yangyun]# python run.py
 *Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
 *Restarting with stat

前端访问asset页面

wKioL1X6FUTg52DlAABF2vmZqMA453.jpg


前端访问user页面

wKiom1X6EwyDfQ7XAABu-gqfM60350.jpg

为什么出现404?因为在run.py里没有指定前缀,所以url里不需要加user

wKioL1X6FUSyI3DjAAA7JI0SKS0527.jpg

 以上






     本文转自杨云1028 51CTO博客,原文链接:http://blog.51cto.com/yangrong/1695562,如需转载请自行联系原作者


 

相关文章
|
5月前
|
数据可视化 Python
Python Flask Echarts数据可视化图表实战晋级笔记(3)Blueprint蓝图解决单文件url分发
Python Flask Echarts数据可视化图表实战晋级笔记(3)Blueprint蓝图解决单文件url分发
53 0
|
8月前
|
Python
如何使用flask 中的Blueprint
如何使用flask 中的Blueprint
|
11月前
|
中间件
SOA通信架构和SOME/IP-SD的主要功能
SOA通信架构和SOME/IP-SD的主要功能
SOA通信架构和SOME/IP-SD的主要功能
|
12月前
|
存储 运维 供应链
能源路由器入门必读:面向能源互联网的架构和功能
能源路由器入门必读:面向能源互联网的架构和功能
913 0
能源路由器入门必读:面向能源互联网的架构和功能
|
12月前
|
前端开发 数据安全/隐私保护 容器
茫茫人海遇见了你,不早也不晚。关于Admin Work 框架中"按钮级权限"功能架构的思考与实现
茫茫人海遇见了你,不早也不晚。关于Admin Work 框架中"按钮级权限"功能架构的思考与实现
茫茫人海遇见了你,不早也不晚。关于Admin Work 框架中"按钮级权限"功能架构的思考与实现
|
12月前
|
Python
Flask中的blueprint 蓝图简单示例
Flask中的blueprint 蓝图简单示例
93 0
|
机器学习/深度学习 数据采集 JSON
基于Serverless架构的验证码识别功能
Serverless 概念自被提出就倍受关注,尤其是近些年来 Serverless 焕发出了前所未有的活力,各领域的工程师都在试图将 Serverless 架构与自身工作进行相结合,以获取到 Serverless 架构所带来的“技术红利”。
88 0
|
分布式计算 数据可视化 大数据
Hue--介绍、功能、架构 | 学习笔记
快速学习 Hue--介绍、功能、架构
1643 0
Hue--介绍、功能、架构 | 学习笔记
uiu
|
存储 安全 前端开发
【Flask】 一个案例学会 Flask 蓝图(Blueprint)
【Flask】 一个案例学会 Flask 蓝图(Blueprint)
uiu
86 0
【Flask】 一个案例学会 Flask 蓝图(Blueprint)
|
API Python
Python全栈:flask的blueprint蓝图使用
Python全栈:flask的blueprint蓝图使用
126 0
相关产品
云迁移中心
推荐文章
更多