溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何正確的使用flask框架視圖函數

發布時間:2021-01-04 15:02:38 來源:億速云 閱讀:166 作者:Leah 欄目:開發技術

本篇文章為大家展示了如何正確的使用flask框架視圖函數,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

flask框架 視圖函數當中 各種實用情況簡單配置

1 建立連接

2 路由參數

3 返回網絡狀態碼

4 自定義錯誤頁面

5 重定向

6 正則url限制 和 url 優化

7 設置和獲取cookie

#coding:utf8
# 導入flask
from flask import Flask,abort,redirect,make_response,request
from werkzeug.routing import BaseConverter
# Flask 接受一個參數__name__ 作用是指明應用的位置
app = Flask(__name__)
'''
1 建立一個前后臺鏈接
裝飾器的作用是陸游映射到視圖函數index
訪問根目錄就會進入index視圖函數
'''
@app.route('/')
def index():
  # 返回后會調用make_response
  return "你好 世界!"
'''
2 給路由傳參數
傳遞的參數在<name>當中 這個變量名稱也要傳遞給視圖函數
可以在<int:name> 或者<string:name> 指定傳遞參數的類型
不指定類型默認使用string類型
'''
@app.route('/attr/<string:attr>')
def attr(attr):
  return "hello,%s"%attr
'''
3 返回網絡狀態碼的兩種方式
  01 return 字符串,狀態碼
  02 abort(狀態碼)
200 成功
300 重定向
404 未找到
500 服務器內部錯誤
'''
#01 return 字符串,狀態碼 這種方式 可以返回不存在的狀態碼 前端依然能得到頁面
@app.route('/status')
def status():
  # 用這種方式可以返回假的狀態碼 前端依然能夠渲染
  return 'hello status',999
#02 利用abort(狀態碼) 進行返回狀態碼,只能寫入真的狀態碼
# 這個函數的作用是 自定義我們項目的 出錯頁面
@app.route('/abort')
def geive500():
  abort(500)
'''
4 捕獲訪問我們flask后臺發生各種錯誤的情況
  利用@app.errorhandler(500) 進行裝飾 能截獲500的response
'''
# 捕獲500異常 函數當中接受到錯誤信息
@app.errorhandler(500)
def error500(e):
  return "您請求的頁面后臺發生錯誤!錯誤信息:%s"%e
@app.errorhandler(404)
def error404(e):
  return "您訪問的頁面飛去了火星!信息:%s"%e
'''
5 重定向
有兩種方式:
  01 redirect(url)
  02 url_for(視圖函數)
'''
@app.route('/redirect')
def redir():
  return redirect('http://www.baidu.com')
'''
6 url正則
兩個用途: 限制訪問 和 優化訪問路徑
使用:
01首先要 定義一個繼承自BaseConverter的子類
  在子類里面調用父類的初始化方法
  重寫父類的變量
02然后 給applurl_map.converters 字典添加re健 和 我們自己寫的類做val
03最后 視圖函數的app.route('路徑<re(正則),變量名>')   
  變量名要傳給視圖函數做參數
'''
# 01 寫一個繼承自 BaseConverter的子類 相應的方法和屬性要重寫
class Regex_url(BaseConverter):
  def __init__(self,url_map,*args):
    super(Regex_url,self).__init__(url_map)
    self.regex = args[0]
# 02 添加re映射
app.url_map.converters['re'] = Regex_url
# 03 正則匹配參數
# 利用正則對傳入參數進行限制
# 只有1到3位小寫英文才能成功 否則都是404
@app.route('/attr2/<re("[a-z]{1,3}"):attr>')
def attr2(attr):
  return "hello %s"%attr
'''
7 設置cookie 和 獲取 cookie
設置cookie:
  利用 make_response() 拿到response對象
  response.set_cookie(key,val)
獲取cookie:
  利用request.cookies.get(key) 獲取cookie
'''
# 設置cookie
@app.route('/set_cookie')
def setCookie():
  response = make_response('設置cookie')
  response.set_cookie('log','設置的cookie')
  return response
# 獲取cookie
@app.route('/get_cookie')
def getCookie():
  log = request.cookies.get('log')
  return log
if __name__ == '__main__':
  # 執行后臺服務器
  app.run(debug=True)

上述內容就是如何正確的使用flask框架視圖函數,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女