flask之flash
訊息閃現
好的應用和使用者介面的重點是回饋。如果使用者沒有得到足夠的反饋,他們可能最終會對您的應用產生不好的評價。Flask 提供了一個非常簡單的方法來使用閃現系統向用戶反饋資訊。閃現系統使得在一個請求結束的時候記錄一個資訊,然後在且僅僅在下一個請求中訪問這個資料。這通常配合一個佈局模板實現。
簡單的閃現
這裡是一個完成的例子:
from flask import Flask, flash, redirect, render_template, \ request, url_for 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?</a> {% endblock %}
這裡是登陸模板:
{% extends "layout.html" %} {% block body %} <h1>Login</h1> {% if error %} <p class=error><strong>Error:</strong> {{ error }} {% endif %} <form action="" method=post> <dl> <dt>Username: <dd><input type=text name=username value="{{ request.form.username }}"> <dt>Password: <dd><input type=password name=password> </dl> <p><input type=submit value=Login> </form> {% endblock %}
分類閃現
0.3 新版功能.
當閃現一個訊息時,是可以提供一個分類的。未指定分類時預設的分類為 'message' 。 可以使用分類來提供給使用者更好的反饋,例如,錯誤資訊應該被顯示為紅色北京。
要使用一個自定義的分類,只要使用 flash() 函式的第二個引數:
flash(u'Invalid password provided', 'error')
在模板中,您接下來可以呼叫 get_flashed_messages() 函式來返回這個分類,在下面的情景中,迴圈看起來將會有一點點不一樣:
{% with messages = get_flashed_messages(with_categories=true) %} {% if messages %} <ul class=flashes> {% for category, message in messages %} <li class="{{ category }}">{{ message }}</li> {% endfor %} </ul> {% endif %} {% endwith %}
這僅僅是一個渲染閃現資訊的例子,您可也可以使用分類來加入一個諸如<strong>Error:</strong> 的字首給資訊。
過濾閃現訊息
0.9 新版功能.
可選地,您可以將一個分類的列表傳入到 get_flashed_messages() 中, 以過濾函式返回的結果。如果您希望將每個分類渲染到獨立的塊中,這會非常有用。
{% with errors = get_flashed_messages(category_filter=["error"]) %} {% if errors %} <div class="alert-message block-message error"> <a class="close" href="#">×</a> <ul> {%- for msg in errors %} <li>{{ msg }}</li> {% endfor -%} </ul> </div> {% endif %} {% endwith %}
相關推薦
flask之flash
訊息閃現 好的應用和使用者介面的重點是回饋。如果使用者沒有得到足夠的反饋,他們可能最終會對您的應用產生不好的評價。Flask 提供了一個非常簡單的方法來使用閃現系統向用戶反饋資訊。閃現系統使得在一個請求結束的時候記錄一個資訊,然後在且僅僅在下一個請求中訪問這個資料。這通常配
flask 之cbv ,flash閃現,Flask_Session,WTForms - MoudelForm
1.CBV : from flask import views class LoginView(views.MethodView): def get(self): return &nb
Flask之CBV,flash,Flask-Session,WTForms,DBUtils
CBV Flask的路由系統有兩種方式 : @app.route() app.add_url_rule() from flask import Flask, views, render_template, redirect, request, session class Log
IIS部署flask之實現文件上傳功能
iis flask1、環境windows 7 x64IIS 6python 2.7.9wfastcgi-3.0.0flask-0.12.22、安裝wfastcgi,並啟動wfastcgipip install wfastcgiC:\Users\wangpan>D:\software\Python27\S
Flask之WTForms驗證
flask wtforms 有時候我們經常會跟前端提交的表單數據打交道,每次手寫驗證規則真的很繁瑣。Flask-WTF擴展模塊提供了前端表單自動生成和前端表單提交數據驗證的功能。WTForms支持的HTML標準字段字段對象說明StringField文本字段TextAreaField多行文本字段Pass
flask之wtform與flask-session組件
必須 cli method ret files cor pro dir users 1.wtform from flask import Flask, render_template, request, redirect from wtforms import Form
Flask之flask-script模塊使用
有一個 server blog 使用 src add command iss 應用 Flask Script擴展提供向Flask插入外部腳本的功能,包括運行一個開發用的服務器,一個定制的Python shell,設置數據庫的腳本,cronjobs,及其他運行在web應用之
87、flask之flask-script組件
odi 服務 返回 功能 pri 相同 只有一個 nag str Flask Script擴展提供向Flask插入外部腳本的功能,包括運行一個開發用的服務器,一個定制的Python shell,設置數據庫的腳本,cronjobs,及其他運行在web應用之外的命令行任務;使得
Flask之session相關
decode python 所有 asdf signature logout print exc gin Flask的session簡介 除請求對象之外,還有一個 session 對象。它允許你在不同請求間存儲特定用戶的信息。它是在 Cookies 的基礎上實現的,並且對
Flask之flask-session
any info cookie值 uil out system orm ati word 簡介 flask-session是flask框架的session組件,由於原來flask內置session使用簽名cookie保存,該組件則將支持session保存到多個地方,如:
Flask之初學者(二)
技術 mysql pytho username g模式 ron import info 字符串格式化 Flask配置文件 在項目文件夾下新建一個“config”py文件,在代碼中“import config”後使用“app.config.from_object(con
Flask之初學者(四)
必須 方便 == -s 數據 需求變化 初始 只需要 run Flask通過DOS命令行操作管理項目和數據庫遷移操作 一、插件安裝 flask-script:在(虛擬)環境中使用“pip install flask-script”進行安裝即可,此插件可以通過命令行更方
Flask之初學者(六)
產生 del 時間設置 用戶 時間 tro 保存 解密 返回 Flask中的session cookie:是一種保存數據的格式,也可以看成是保存數據的一個“盒子”,服務器返回cookie給瀏覽器(由服務器產生),由瀏覽器保存在本地,下次再訪問此服務器時瀏覽器就會自動將
Flask之初學者(七)
子函數 port 傳參 不用 視圖 定義 ces 位置 裝飾器 Flask的g對象 g可以可以看作是單詞global的縮寫,使用“from flask import g”導入,g對象的作用是保存一些在一次請求中多個地方的都需要用到的數據,這些數據可能在用到的時候都需要去
Flask 之 WebSocket
缺點 占用 主動 連接 優點 什麽 響應 成功 斷開 http:是一個協議 規定:數據傳輸格式 -/r/n/r/n 一次的請求,一次的響應,斷開了 短鏈接 無狀態 服務器收到的請求,做出的響應給客戶端 客戶端主動向服務器發起請求 基於socket send發給客戶
Flask之模板之宏、繼承、包含
實現 pan 同名 value 存在 包含 冗余 3.5 hold 3.5 宏、繼承、包含 類似於python中的函數,宏的作用就是在模板中重復利用代碼,避免代碼冗余。 Jinja2支持宏,還可以導入宏,需要在多處重復使用的模板代碼片段可以寫入單獨的文件,再包含在所有模板中
Flask之初始化封裝
flask __name__ man 返回值 __main__ alc imp fprot 返回 # 修改info包的init文件如下: import redis from flask import Flask from flask_session import Sessi
Flask之日誌的使用
bug eve Matter conf lin handle pre inf .get # 日誌等級 : # FATAL/CRITICAL = 重大的,危險的 # ERROR = 錯誤 # WARNING = 警告 # INFO = 信息 # DEBUG = 調試 #
flask之instance_path實例路徑
object loading read time works ges explicit please abs Flask 0.8 introduces instance folders. Flask for a long time made it possible to r
Flask之WSGI:Werkzeug
ask response web 請求 esp tutorial 希望 返回 字符 WSGI 一個Web應用的本質就是: 瀏覽器發送一個HTTP請求; 服務器收到請求,生成一個HTML文檔; 服務器把HTML文檔作為HTTP響應的Body發送給瀏覽器; 瀏覽