其實關於什么用flask搭建一個后台博客啥的跟着官方文檔做一遍就行了。感覺啥都有我這里就不贅述了只是記錄一個筆記,因為稍微有幾個地方有點坑。
目標:做了一個簡易頁面給電商的同事用來添加商品
首先是安裝flask和mako。
這里注意不僅要安裝mako還要安裝mako針對flask的擴展才能正常使用。
Flask==0.10.1 flask-mako==0.3 flask-peewee==0.6.6
mako==1.0.3
使用pip install一個一個安裝或者使用pip install -r 安裝配置文件這個無所謂,這里只是列出需要安裝的包
下面正式進入項目。
貼出應用內的__init__配置:
from flask import Flask from flask.ext.mako import MakoTemplates app = Flask(__name__) mako = MakoTemplates(app)
import kepler.app.views.jd_view.stock # noqa
import kepler.app.views.jd_view.balance # noqa
import kepler.app.views.jd_view.address # noqa
import kepler.app.views.jd_view.idmap # noqa
import kepler.app.views.jd_view.after_sale # noqa
講解一下配置,首先是一個flask_app這個沒啥好說的,下面那個mako是我使用mako對flask的擴展,使用這個擴展必須在app里初始化,否則就會失敗。
__init__這個初始化文件里面還會有一些從views文件夾里面引入的文件,這是幫助其他views在引入了__init__文件里的app構造路由的時候,路由能正確的找到對應的函數。
這樣配置完畢之后,在templates文件夾下面就可以正常使用模版文件了,在views文件夾下面的函數使用render_template函數也能正常找到對應的模版。
這里貼上app內的文件目錄:
具體的mako使用方法我這里就不贅述了反正模版引擎的使用大多大同小異,參考官方文檔:http://www.makotemplates.org
這里還要提一下關於flask的靜態文件尋址的問題,當我們使用了模版引擎並且使用了flask框架之后,在templates里面的文件的尋址方式就不再是普通的方式。所有的路由規則都將由flask進行控制。當你試圖在templates里面去引用static里面的某個css的時候,直接寫文件路徑的相對對路徑是無法找到對應的文件的。這點大家嘗試過的想必都非常清楚。稍微在flask文檔里面尋找一下能了解到,flask針對靜態文件尋址提供好了現成的方法。
下面引用官方文檔的描述:http://flask.pocoo.org/docs/0.10/quickstart/#about-responses
Static Files
Dynamic web applications also need static files. That’s usually where the CSS and JavaScript files are coming from. Ideally your web server is configured to serve them for you, but during development Flask can do that as well. Just create a folder called staticin your package or next to your module and it will be available at /static on the application.
To generate URLs for static files, use the special 'static'
endpoint name:
url_for('static', filename='style.css')
The file has to be stored on the filesystem as static/style.css
.
所以當你的一個html模版需要使用到css,js,img之類資源的使用,進行靜態文件尋址只需要
<link href="${url_for('static', filename='css/bootstrap.min.css')}" rel="stylesheet">
這里的尋址路徑就是static文件夾下面,css/bootstrap.min.css文件,其他的使用靜態文件的方式與之大同小異。
我將在下一篇介紹單獨介紹一下peewee的使用。個人覺得peewee可以說是flask orm中的佼佼者,還是比較好用,也推薦使用。