亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

#1.導(dǎo)入Flask類
from flask import Flask
#2.創(chuàng)建Flask對(duì)象接收一個(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對(duì)象參數(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.指定請(qǐng)求方式:

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

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

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

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

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

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

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

response = make_response("響應(yīng)體")
response.status = "狀態(tài)碼 狀態(tài)碼描述"
response.headers = {響應(yīng)頭鍵值對(duì)}
(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()

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

相關(guān)文章

  • Python NaN空值的處理示例詳解

    Python NaN空值的處理示例詳解

    這篇文章主要介紹了Python NaN空值的處理,通過本文的介紹,對(duì)Python去掉數(shù)組中的空值NaN有了更加深入的了解,在實(shí)際的數(shù)據(jù)分析工作中,我們可以根據(jù)具體的情況選擇合,需要的朋友可以參考下
    2023-11-11
  • Django Haystack 全文檢索與關(guān)鍵詞高亮的實(shí)現(xiàn)

    Django Haystack 全文檢索與關(guān)鍵詞高亮的實(shí)現(xiàn)

    這篇文章主要介紹了Django Haystack 全文檢索與關(guān)鍵詞高亮的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python add_argument()用法解析

    python add_argument()用法解析

    這篇文章主要介紹了python add_argument()用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 詳解Python nose單元測(cè)試框架的安裝與使用

    詳解Python nose單元測(cè)試框架的安裝與使用

    本篇文章主要介紹了詳解Python nose單元測(cè)試框架的安裝與使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Python爬蟲爬取屬于自己的地鐵線路圖

    Python爬蟲爬取屬于自己的地鐵線路圖

    這篇文章主要介紹了Python爬蟲爬取屬于自己的地鐵線路圖,下面文章主要事根據(jù)自己需要對(duì)地鐵路線進(jìn)行爬取的實(shí)現(xiàn)過程,需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • python常用庫(kù)之NumPy和sklearn入門

    python常用庫(kù)之NumPy和sklearn入門

    這篇文章主要介紹了python常用庫(kù)之NumPy和sklearn入門,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python學(xué)習(xí)筆記之字符串和字符串方法實(shí)例詳解

    Python學(xué)習(xí)筆記之字符串和字符串方法實(shí)例詳解

    這篇文章主要介紹了Python學(xué)習(xí)筆記之字符串和字符串方法,結(jié)合實(shí)例形式詳細(xì)分析了Python字符串相關(guān)操作函數(shù)與使用技巧,需要的朋友可以參考下
    2019-08-08
  • keras用auc做metrics以及早停實(shí)例

    keras用auc做metrics以及早停實(shí)例

    這篇文章主要介紹了keras用auc做metrics以及早停實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python 自動(dòng)去除空行的實(shí)例

    python 自動(dòng)去除空行的實(shí)例

    今天小編就為大家分享一篇python 自動(dòng)去除空行的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • tensorflow 初始化未初始化的變量實(shí)例

    tensorflow 初始化未初始化的變量實(shí)例

    今天小編就為大家分享一篇tensorflow 初始化未初始化的變量實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評(píng)論