One - One Code All

Blog Content

flask使用蓝图blueprint时static静态文件的访问

Python   2014-04-13 17:59:34

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文件夹同级的。



上一篇:flask的request模块的属性参考
下一篇:python标准库之zipfile压缩文件与解压缩zip

The minute you think of giving up, think of the reason why you held on so long.