使用flask作为开发框架,一定要按功能模块化,否则到了后面项目越大,开发速度就越慢。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<code>[root@yang-218 yangyun]</code><code># tree</code>
<code>.</code>
<code>├── asset </code><code>#资产功能目录</code>
<code>│ ├── __init__.py</code>
<code>│ ├── models.py </code><code>#资产数据库结构文件</code>
<code>│ └── views.py </code><code>#资产视图文件</code>
<code>├── user </code><code>#用户功能目录</code>
<code>│ ├──__init__.py</code>
<code>│ ├── models.py </code><code>#用户数据库结构文件</code>
<code>│ └── views.py </code><code>#用户视图配置文件</code>
<code>├── config.py </code><code>#公共配置文件</code>
<code>├── requirements.txt </code><code>#需要的安装包</code>
<code>├── run.py </code><code>#主运行文件</code>
<code>├── static </code><code>#静态文件目录,css,js, image等</code>
<code>└── templates </code><code>#静态页面存放目录</code>
<code> </code><code>├── asset </code><code>#asset功能模块页面存放目录</code>
<code> </code><code>│ └── index.html</code>
<code> </code><code>├── index.html </code><code>#首页</code>
<code> </code><code>└── user </code>
<code> </code><code>└── index.html</code>
[root@yang-218 yangyun]# cat run.py
<code>from</code> <code>flask </code><code>import</code> <code>Flask</code>
<code>from</code> <code>asset </code><code>import</code> <code>asset</code>
<code>from</code> <code>user </code><code>import</code> <code>user</code>
<code> </code>
<code>apple</code><code>=</code><code>Flask(__name__,</code>
<code> </code><code>template_folder</code><code>=</code><code>'templates'</code><code>, </code><code>#指定模板路径,可以是相对路径,也可以是绝对路径。 </code>
<code> </code><code>static_folder</code><code>=</code><code>'static'</code><code>, </code><code>#指定静态文件前缀,默认静态文件路径同前缀</code>
<code> </code><code>#static_url_path='/opt/auras/static', #指定静态文件存放路径。</code>
<code> </code><code>)</code>
<code>apple.register_blueprint(asset,url_prefix</code><code>=</code><code>'/asset'</code><code>) </code><code>#注册asset蓝图,并指定前缀。</code>
<code>apple.register_blueprint(user) </code><code>#注册user蓝图,没有指定前缀。</code>
<code>if</code> <code>__name__</code><code>=</code><code>=</code><code>'__main__'</code><code>:</code>
<code> </code><code>apple.run(host</code><code>=</code><code>'0.0.0.0'</code><code>,port</code><code>=</code><code>8000</code><code>,debug</code><code>=</code><code>True</code><code>) </code><code>#运行flask http程序,host指定监听IP,port指定监听端口,调试时需要开启debug模式。</code>
其它的功能模块配置相似
1) __init__.py文件配置
[root@yang-218 asset]# cat __init__.py
<code>from</code> <code>flask </code><code>import</code> <code>Blueprint</code>
<code>asset</code><code>=</code><code>Blueprint(</code><code>'asset'</code><code>,</code>
<code> </code><code>__name__,</code>
<code> </code><code>#template_folder='/opt/auras/templates/', #指定模板路径</code>
<code> </code><code>#static_folder='/opt/auras/flask_bootstrap/static/',#指定静态文件路径</code>
<code> </code><code>)</code>
<code>import</code> <code>views</code>
2) views.py文件配置
[root@yang-218 asset]# cat views.py
<code>from</code> <code>flask </code><code>import</code> <code>render_template</code>
<code>@asset</code><code>.route(</code><code>'/'</code><code>) </code><code>#指定路由为/,因为run.py中指定了前缀,浏览器访问时,路径为http://IP/asset/</code>
<code>def</code> <code>index(): </code>
<code> </code><code>print</code><code>'__name__'</code><code>,__name__</code>
<code> </code><code>returnrender_template(</code><code>'asset/index.html'</code><code>) </code><code>#返回index.html模板,路径默认在templates下</code>
3)前端页面配置
<code>[root@yang-218 yangyun]</code><code># echo 'This isasset index page...' >templates/asset/index.html</code>
此处配置和上述asset的配置一致
1) __init__.py配置
[root@yang-218 yangyun]# cat user/__init__.py
<code>user</code><code>=</code><code>Blueprint(</code><code>'user'</code><code>,</code>
<code> </code><code>__name__,</code>
2) views.py配置
[root@yang-218 yangyun]# cat user/views.py
<code>@user</code><code>.route(</code><code>'/'</code><code>)</code>
<code>def</code> <code>index():</code>
<code> </code><code>returnrender_template(</code><code>'user/index.html'</code><code>)</code>
3) 静态页面配置
<code>echo</code> <code>'This is User page....'</code> <code>>templates</code><code>/user/index</code><code>.html</code>
主要作用是记录需要的依赖包,新环境部署时安装如下依赖包即可,pip安装命令: pip install -r requirements.txt
<code>[root@yang-218 yangyun]</code><code># catrequirements.txt</code>
<code>Flask==0.10.1</code>
<code>Flask-Bootstrap==3.3.5.6</code>
<code>Flask-Login==0.2.11</code>
<code>Flask-SQLAlchemy==2.0</code>
<code>Flask-WTF==0.12</code>
后端运行程序
<code>[root@yang-218 yangyun]</code><code># python run.py</code>
<code> </code><code>*Running on http:</code><code>//0</code><code>.0.0.0:8000/ (Press CTRL+C to quit)</code>
<code> </code><code>*Restarting with stat</code>
前端访问asset页面
<a href="http://s3.51cto.com/wyfs02/M00/73/4D/wKioL1X6FUTg52DlAABF2vmZqMA453.jpg" target="_blank"></a>
前端访问user页面
<a href="http://s3.51cto.com/wyfs02/M00/73/50/wKiom1X6EwyDfQ7XAABu-gqfM60350.jpg" target="_blank"></a>
为什么出现404?因为在run.py里没有指定前缀,所以url里不需要加user。
<a href="http://s3.51cto.com/wyfs02/M01/73/4D/wKioL1X6FUSyI3DjAAA7JI0SKS0527.jpg" target="_blank"></a>
以上
本文转自杨云1028 51CTO博客,原文链接:http://blog.51cto.com/yangrong/1695562,如需转载请自行联系原作者