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.静态文件
静态文件主要包含CSS,Javascript,图片,字体等静态资源文件。
用url_for()
生成静态文件路径
url_for('static',filename='style.css')
生成的路径就是“/static/style.css”
定制静态文件的真实路径
app=Flask(__name__,static_folder='/tmp')
网友评论