使用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,如需轉載請自行聯系原作者