最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flask框架學(xué)習(xí)筆記之消息提示與異常處理操作詳解

 更新時間:2019年08月15日 11:01:09   作者:Cytues  
這篇文章主要介紹了Flask框架學(xué)習(xí)筆記之消息提示與異常處理操作,結(jié)合實例形式分析了flask框架表單登陸消息提示、錯誤模板調(diào)用及異常處理相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Flask框架學(xué)習(xí)筆記之消息提示與異常處理操作。分享給大家供大家參考,具體如下:

flask通過flash方法來顯示提示消息:

from flask import Flask, flash, render_template, request, abort

app = Flask(__name__)
app.secret_key = '520'

@app.route('/')
def index():
  flash("Hello loli")
  return render_template("flash.html")

flash模板:flask開放了get_flashed_messages函數(shù)給模板使用,用來得到視圖函數(shù)中的flash里的字符串(消息)。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<h1>Hello Login</h1>
<h2>{{ get_flashed_messages()[0] }}</h2>
</body>
</html>

這里制作一個簡單的表單模擬登陸界面提示:使用request方法得到輸入表單中的數(shù)據(jù)。

@app.route('/login', methods=['POST'])
def login():
  # 獲取表單
  form = request.form
  # 獲取表單數(shù)據(jù)
  username = form.get('username')
  password = form.get('password')
  # 若不存在username則flash(xxx)
  if not username:
    flash('Please input username')
    return render_template("flash.html")
  if not password:
    flash('Please input password')
    return render_template("flash.html")

  if username == "loli" and password == "520":
    flash("Login success")
    return render_template("flash.html")
  else:
    flash("username or password wrong")
    return render_template('flash.html')

表單模板:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<h1>Hello Login</h1>

<form action="/login" method="post">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit" value="Submit">
</form>

<h2>{{ get_flashed_messages()[0] }}</h2>

</body>
</html>

未輸入任何數(shù)據(jù)提示輸入username


未輸入密碼顯示的flash提示消息。


用戶名和密碼不符時。


登陸成功界面。

flask同樣可以自己設(shè)置404等錯誤界面:flask提供了errorhandler修飾器來設(shè)置自己的錯誤界面。

@app.errorhandler(404)
def not_found(e):
  return render_template("404.html")

自己設(shè)置的簡單404錯誤模板:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <h1>404 頁面不存在</h1>
  <h2>Sorry</h2>
</body>
</html>

也可以在正常的界面發(fā)生404錯誤時轉(zhuǎn)到這個模板裝飾:用flask import abort方法來引起一個404錯誤. 只要user_id不為520則觸發(fā)404頁面。

@app.route('/users/<user_id>')
def users(user_id):
  if int(user_id) == 520:
    return render_template("user.html")
  else:
    abort(404)

user模板:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <h1>Loli </h1>
</body>
</html>

源碼:

#-*- coding:utf-8 -*-
from flask import Flask, flash, render_template, request, abort

app = Flask(__name__)
app.secret_key = '520'

@app.route('/')
def index():
  flash("Hello loli")
  return render_template("flash.html")

@app.route('/login', methods=['POST'])
def login():
  # 獲取表單
  form = request.form
  # 獲取表單數(shù)據(jù)
  username = form.get('username')
  password = form.get('password')
  # 若不存在username則flash(xxx)
  if not username:
    flash('Please input username')
    return render_template("flash.html")
  if not password:
    flash('Please input password')
    return render_template("flash.html")

  if username == "loli" and password == "520":
    flash("Login success")
    return render_template("flash.html")
  else:
    flash("username or password wrong")
    return render_template('flash.html')

@app.errorhandler(404)
def not_found(e):
  return render_template("404.html")

@app.route('/users/<user_id>')
def users(user_id):
  if int(user_id) == 520:
    return render_template("user.html")
  else:
    abort(404)

if __name__ == '__main__':
  app.run()

希望本文所述對大家基于flask框架的Python程序設(shè)計有所幫助。

相關(guān)文章

  • Python使用Networkx實現(xiàn)復(fù)雜的人物關(guān)系圖

    Python使用Networkx實現(xiàn)復(fù)雜的人物關(guān)系圖

    日常工作、生活中我們經(jīng)常會遇到一些復(fù)雜的事務(wù)關(guān)系,比如人物關(guān)系,那如何才能清楚直觀的看清楚這些任務(wù)關(guān)系呢?所以小編給大家介紹了Python如何使用Networkx實現(xiàn)復(fù)雜的人物關(guān)系圖,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Python中的類的定義和對象的創(chuàng)建方法

    Python中的類的定義和對象的創(chuàng)建方法

    object?是?Python?為所有對象提供的?基類,提供有一些內(nèi)置的屬性和方法,可以使用?dir?函數(shù)查看,這篇文章主要介紹了Python中的類的定義和對象的創(chuàng)建,需要的朋友可以參考下
    2022-11-11
  • PyTorch解決ModuleNotFoundError: No module named ‘torch’

    PyTorch解決ModuleNotFoundError: No module named

    本文主要介紹了PyTorch解決ModuleNotFoundError: No module named ‘torch’,這個錯誤意味著我們的Python環(huán)境中沒有安裝PyTorch庫,無法正常使用其功能,下面就來具體介紹一下
    2024-03-03
  • 詳談python中subprocess shell=False與shell=True的區(qū)別

    詳談python中subprocess shell=False與shell=True的區(qū)別

    這篇文章主要介紹了詳談python中subprocess shell=False與shell=True的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • python統(tǒng)計字符的個數(shù)代碼實例

    python統(tǒng)計字符的個數(shù)代碼實例

    在本篇文章里小編給大家整理了關(guān)于python統(tǒng)計字符的個數(shù)代碼實例內(nèi)容,需要的朋友們可以參考下。
    2020-02-02
  • Python引用傳值概念與用法實例小結(jié)

    Python引用傳值概念與用法實例小結(jié)

    這篇文章主要介紹了Python引用傳值概念與用法,簡單分析了Python引用傳值的概念、功能并結(jié)合實例形式總結(jié)分析了Python引用傳值的具體實現(xiàn)與使用方法,需要的朋友可以參考下
    2017-10-10
  • 一文帶你搞懂Numpy中的深拷貝和淺拷貝

    一文帶你搞懂Numpy中的深拷貝和淺拷貝

    深拷貝和淺拷貝是Python中重要的概念,本文將重點介紹在NumPy中深拷貝和淺拷貝相關(guān)操作的定義和背后的原理,快跟隨小編一起來學(xué)習(xí)一下吧
    2022-04-04
  • python flask幾分鐘實現(xiàn)web服務(wù)的例子

    python flask幾分鐘實現(xiàn)web服務(wù)的例子

    今天小編就為大家分享一篇python flask幾分鐘實現(xiàn)web服務(wù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python smtplib模塊自動收發(fā)郵件功能(一)

    python smtplib模塊自動收發(fā)郵件功能(一)

    這篇文章主要為大家詳細(xì)介紹了python smtplib模塊自動收發(fā)郵件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • selenium3.0+python之環(huán)境搭建的方法步驟

    selenium3.0+python之環(huán)境搭建的方法步驟

    這篇文章主要介紹了selenium3.0+python之環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論

陆良县| 永清县| 黔西县| 镇康县| 绵阳市| 化隆| 乌鲁木齐县| 大田县| 南昌县| 商都县| 屏南县| 西峡县| 女性| 思南县| 西盟| 辽宁省| 宜城市| 安福县| 元阳县| 长丰县| 南开区| 凤翔县| 慈利县| 磐安县| 剑川县| 芜湖县| 龙川县| 开远市| 确山县| 三原县| 伊宁市| 易门县| 香河县| 封丘县| 陵水| 西吉县| 汤阴县| 台前县| 湖口县| 景洪市| 明水县|