flask使用蓝图blueprint时static静态文件的访问
蓝图模板访问静态文件和一般的应用没什么区别,
static目录默认是在 app/static
具体根据情况有可能是在: project/apps/static, project/app/static
如果flask应用是一个单独的模块,就是这样: /static/<文件名>
{{url_for('static', filename='kube.css')}}
参考:http://docs.jinkan.org/docs/flask/quickstart.html
构造 URL
如果 Flask 能匹配 URL,那么 Flask 可以生成它们吗?当然可以。你可以用 url_for() 来给指定的函数构造 URL。它接受函数名作为第一个参数,也接受对应 URL 规则的变量部分的命名参数。未知变量部分会添加到 URL 末尾作为查询参数。这里有一些例子:
>>> from flask import Flask, url_for
>>> app = Flask(__name__)
>>> @app.route('/')
... def index(): pass
...
>>> @app.route('/login')
... def login(): pass
...
>>> @app.route('/user/
... def profile(username): pass
...
>>> with app.test_request_context():
... print url_for('index')
... print url_for('login')
... print url_for('login', next='/')
... print url_for('profile', username='John Doe')
...
/
/login
/login?next=/
/user/John%20Doe
HTTP 方法
HTTP (与 Web 应用会话的协议)有许多不同的访问 URL 方法。默认情况下,路由只回应 GET 请求,但是通过 route() 装饰器传递 methods 参数可以改变这个行为。这里有一些例子:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
do_the_login()
else:
show_the_login_form()
blueprint配置举例:
bp = Blueprint("wx_template2", __name__, template_folder="templates", static_url_path='', static_folder='')
template:
这个css文件夹是放在blueprint的根目录下的,就是那个blueprint的template文件夹同级的。