1.消息閃現
消息閃現會在請求結束時記錄信息璃饱,并(且僅在)下一請求中訪問信息为鳄。
flash()
函數會閃現一條消息
get_flashed_messages()
函數操作消息本身筋蓖,在模版中也可以使用诫硕。
實例
from flask import Flask,url_for,flash,render_template,redirect,request
app=Flask(__name__)
app.secret_key="some_secret"
@app.route('/')
def index():
return render_template('index.html')
@app.route('/login',methods=['GET','POST'])
def login():
error=None
if request.method=='POST':
if request.form['username']!='admin' or \
request.form['password']!='secret':
error='Invalid credentials'
else:
flash('You were successfully logged in')
return redirect(url_for('index'))
return render_template('login.html',error=error)
if __name__ == '__main__':
app.run()
layout.html
<!DOCTYPE html>
<title>My Application</title>
{% with messages=get_flashed_messages() %}
{% if messages %}
<ul class=flashes>
{% for message in messages %}
<li>{{message}}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
{% block body %}
{% endblock %}
index.html
{% extends "layout.html" %}
{% block body %}
<h1>Overview</h1>
<p>Do you want to <a href="{{ url_for('login')}}">log in?</p>
{% endblock %}
login.html
{% extends "layout.html" %}
{% block body %}
<h1>Login</h1>
{% if error %}
<p class=error><strong>Error:</strong>{{error}}</p>
{% endif %}
<form action="" method=post>
<dl>
<dt>Username:
<dd><input type=text name=username value={{request.form.username}}></dd>
<dt>Password:
<dd><input type=password name=password>
</dl>
<p><input type="submit" value="Login"></p>
</form>
{% endblock %}
2.日志記錄
例子:
app.logger.debug('A value for debugging')
app.logger.warning('A warning occurred (%d apples)', 42)
app.logger.error('An error occurred')
3.靜態(tài)文件
靜態(tài)文件主要包含CSS橄霉,Javascript嫌松,圖片沪曙,字體等靜態(tài)資源文件。
用url_for()
生成靜態(tài)文件路徑
url_for('static',filename='style.css')
生成的路徑就是“/static/style.css”
定制靜態(tài)文件的真實路徑
app=Flask(__name__,static_folder='/tmp')