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

Flask框架路由和視圖用法實(shí)例分析

 更新時(shí)間:2019年11月07日 12:05:13   作者:HMMHMH  
這篇文章主要介紹了Flask框架路由和視圖用法,結(jié)合實(shí)例形式分析了Flask路由和視圖相關(guān)原理、定義與使用方法,需要的朋友可以參考下

本文實(shí)例講述了Flask框架路由和視圖用法。分享給大家供大家參考,具體如下:

創(chuàng)建一個(gè)簡單flask框架程序

#1.導(dǎo)入Flask類
from flask import Flask
#2.創(chuàng)建Flask對象接收一個(gè)參數(shù)__name__,它會(huì)指向程序所在的包
app = Flask(__name__)
#3.裝飾器的作用是將路由映射到視圖函數(shù)index
@app.route('/')
def index():
  return 'Hello World'
#4.Flask應(yīng)用程序?qū)嵗膔un方法,啟動(dòng)WEB服務(wù)器
if __name__ == '__main__':
  app.run()

1.Flask對象參數(shù):

參數(shù) 描述
name (必寫)代表程序主函數(shù)__main__
static_folder 靜態(tài)資源文件夾(默認(rèn)static)
static_url_path 靜態(tài)資源路徑(默認(rèn)/static)
template_folder 模板文件夾(默認(rèn)templates)

2.run方法參數(shù):

參數(shù) 描述
ip IP地址
port 端口
debug 默認(rèn)為False,更改為True可以不重啟服務(wù)器進(jìn)行服務(wù)器修改(ctrl+s保存即可), 并且報(bào)錯(cuò)后會(huì)有相應(yīng)提示

debug 默認(rèn)為False,更改為True可以不重啟服務(wù)器進(jìn)行服務(wù)器修改(ctrl+s保存即可), 并且報(bào)錯(cuò)后會(huì)有相應(yīng)提示

路由視圖函數(shù)

@app.route("/路徑"):路由裝飾器,可以通過路徑執(zhí)行被裝飾的函數(shù)
app.url_map:可查看當(dāng)前路由函數(shù)和路徑

1.動(dòng)態(tài)參數(shù):@app.route("/路徑/<類型:變量>")

常用類型

類型 描述
int 整型
float 浮點(diǎn)型
path 字符串型

自定義類型:

(1)編寫⾃定義轉(zhuǎn)換器類,繼承BaseConverter
(2)編寫init⽅法
(3)初始化⽗類,⼦類變量
(4)將⾃定義轉(zhuǎn)換器添加到默認(rèn)轉(zhuǎn)換器列表中

例:

from flask import Flask
from werkzeug.routing import BaseConverter
#1.自定義類,繼承自BaseConverter
class MyRegexConverter(BaseConverter):
  # 2.編寫方法, init
  def __init__(self,map,regex):
    # 3.初始化, 父類, 子類變量
    super(MyRegexConverter, self).__init__(map)
    self.regex = regex
app = Flask(__name__)
# 4.將自定義轉(zhuǎn)換器添加到,系統(tǒng)默認(rèn)的轉(zhuǎn)換列表中
app.url_map.converters["re"] = MyRegexConverter
print(app.url_map.converters)
# 接收三位整數(shù)
# 通過re調(diào)用的init方法, 參數(shù)1[默認(rèn)]: app.url_map, 參數(shù)2: 自己定義的規(guī)則
@app.route('/<re("\d{3}"):number>')
def hello_world(number):
  return "the re number is %s"%number
# 接收四位整數(shù)
@app.route('/<re("\d{4}"):number>')
def get_four_number(number):
  return "the four number is %s"%number
# 接收手機(jī)號(hào)
@app.route('/<re("1[3456789]\d{9}"):mobile>')
def get_mobile_number(mobile):
  return "the mobile number is %s"%mobile
if __name__ == '__main__':
  app.run()

2.指定請求方式:

@app.route("/路徑",methods=["⽅式1","方式2"])

方式:GET(默認(rèn)),POST,PUT,DELETE

3.視圖函數(shù)返回內(nèi)容:

(1)直接返回響應(yīng)體對象:

返回響應(yīng)體、狀態(tài)碼、響應(yīng)頭

return "hello","666",{"name":"zhangsan"}

(2)手動(dòng)創(chuàng)建響應(yīng)體對象:

response = make_response("響應(yīng)體")
response.status = "狀態(tài)碼 狀態(tài)碼描述"
response.headers = {響應(yīng)頭鍵值對}
(response.headers["Content-Type"] = "application/json")
return response

(3)返回json:

jsonify(dict)
jsonify(key=value,key2=value2)

(4)重定向:

重定向:redirect("路徑")
反解析:url_for("函數(shù)",key=value)
二者配合使⽤可以傳遞參數(shù)

例:

"""
url_for, 反解析,根據(jù)視圖函數(shù)名稱找到,視圖函數(shù)的路徑地址,可以攜帶參數(shù)
格式: url_for('函數(shù)名',key=value), 返回的是一個(gè)地址(字符串)
"""""
from flask import Flask,url_for,redirect
app = Flask(__name__)
# 京東, 代號(hào)111
@app.route('/jingdong')
def jingdong():
  #print(url_for("taobao")) #/taobao
  # print(url_for("taobao",token=111)) #/taobao/111
  response = redirect(url_for("taobao",token=111))
  return response
#易迅, 代號(hào)222
@app.route('/yixun')
def yixun():
  response = redirect(url_for("taobao",token=222))
  return response
@app.route('/other')
def other():
  response = redirect(url_for("taobao",token=888))
  return response
# 淘寶
@app.route('/taobao/<int:token>')
def taobao(token):
  #判斷哪個(gè)平臺(tái)過來的用戶
  if(token == 111):
    return "歡迎京東用戶,光臨淘寶,給你打9折"
  elif(token == 222):
    return "歡迎易迅用戶,光臨淘寶,給你打5折"
  else:
    return "其他用戶"
if __name__ == '__main__':
  app.run()

4.異常處理:

(1)拋出異常(abort):

abort(code)

code為HTTP錯(cuò)誤狀態(tài)碼

(2)異常捕獲(errorhandler):

code為HTTP錯(cuò)誤狀態(tài)碼
@app.errorhandler(code)
def fun():
…

參數(shù)加載方式

1.從類中加載:app.config.from_object()

例:

class Config(object):
  #調(diào)試模式
  DEBUG=True
app.config.from_object(Config)

2.從配置⽂件中加載:app.config.from_pyfile()

例:

app.config.from_pyfile("config.ini")

3.從環(huán)境變量加載(了解):

app.config.from_envvar()

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

相關(guān)文章

  • django admin實(shí)現(xiàn)動(dòng)態(tài)多選框表單的示例代碼

    django admin實(shí)現(xiàn)動(dòng)態(tài)多選框表單的示例代碼

    借助django-admin,可以快速得到CRUD界面,但若需要?jiǎng)?chuàng)建多選標(biāo)簽字段時(shí),需要對表單進(jìn)行調(diào)整,本文通過示例代碼給大家介紹django admin多選框表單的實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • python logging重復(fù)記錄日志問題的解決方法

    python logging重復(fù)記錄日志問題的解決方法

    python的logging模塊是python使用過程中打印日志的利器,下面這篇文章主要給大家介紹了關(guān)于python logging重復(fù)記錄日志問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • 一文讓你徹底搞懂Python中__str__和__repr__

    一文讓你徹底搞懂Python中__str__和__repr__

    這篇文章主要介紹了Python中的__str__和__repr__的異同,__str__和__repr__是基本的內(nèi)置方法,文中有詳細(xì)的代碼示例,感興趣的同學(xué)可以參考閱讀下
    2023-05-05
  • python 隨機(jī)森林算法及其優(yōu)化詳解

    python 隨機(jī)森林算法及其優(yōu)化詳解

    這篇文章主要介紹了ptyhon 隨機(jī)森林算法及其優(yōu)化詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 檢查Python中的變量是否是字符串(兩種不同方法)

    檢查Python中的變量是否是字符串(兩種不同方法)

    數(shù)據(jù)類型是編程語言最重要的特征,它區(qū)分了我們可以存儲(chǔ)的不同類型的數(shù)據(jù),如字符串、int和float,這篇文章主要介紹了兩種不同的方法來檢查Python中的變量是否是字符串,需要的朋友可以參考下
    2023-08-08
  • Python存儲(chǔ)讀取HDF5文件代碼解析

    Python存儲(chǔ)讀取HDF5文件代碼解析

    這篇文章主要介紹了Python存儲(chǔ)讀取HDF5文件代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python字符串和二進(jìn)制字符串之間的轉(zhuǎn)換方法示例

    Python字符串和二進(jìn)制字符串之間的轉(zhuǎn)換方法示例

    python中沒有0-1形式的二進(jìn)制類型,但我們依然可以存儲(chǔ)二進(jìn)制類型的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Python字符串和二進(jìn)制字符串之間的轉(zhuǎn)換方法,需要的朋友可以參考下
    2023-06-06
  • python爬取代理IP并進(jìn)行有效的IP測試實(shí)現(xiàn)

    python爬取代理IP并進(jìn)行有效的IP測試實(shí)現(xiàn)

    這篇文章主要介紹了python爬取代理IP并進(jìn)行有效的IP測試實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python tkinter實(shí)現(xiàn)簡單計(jì)算器功能

    python tkinter實(shí)現(xiàn)簡單計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了python tkinter實(shí)現(xiàn)簡單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python深度學(xué)習(xí)理解pytorch神經(jīng)網(wǎng)絡(luò)批量歸一化

    Python深度學(xué)習(xí)理解pytorch神經(jīng)網(wǎng)絡(luò)批量歸一化

    這篇文章主要是Python深度學(xué)習(xí)篇,通過示例的詳解讓大家更好的理解pytorch神經(jīng)網(wǎng)絡(luò)批量歸一化,有需要的的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10

最新評(píng)論

宜城市| 嘉定区| 富平县| 东方市| 河津市| 肇庆市| 陵水| 阳东县| 渭源县| 陈巴尔虎旗| 商城县| 扎囊县| 两当县| 中方县| 天长市| 东乡| 涞水县| 师宗县| 泗水县| 长垣县| 乳山市| 宁蒗| 梁河县| 玉溪市| 依兰县| 镇宁| 炎陵县| 清流县| 思南县| 屏南县| 西畴县| 长乐市| 师宗县| 原平市| 微山县| 通海县| 凉山| 无锡市| 定陶县| 霍州市| 建德市|