flask学习(四)

作者: _LC | 来源:发表于2018-02-25 22:05 被阅读0次

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

    相关文章

      网友评论

        本文标题:flask学习(四)

        本文链接:https://www.haomeiwen.com/subject/kderxftx.html