python~flask

flask学习(四)

2018-02-25  本文已影响0人  _LC

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')

上一篇下一篇

猜你喜欢

热点阅读