91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何在Flask框架中使用路由和視圖

發布時間:2021-05-12 17:13:38 來源:億速云 閱讀:192 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關如何在Flask框架中使用路由和視圖,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創建一個簡單flask框架程序

#1.導入Flask類
from flask import Flask
#2.創建Flask對象接收一個參數__name__,它會指向程序所在的包
app = Flask(__name__)
#3.裝飾器的作用是將路由映射到視圖函數index
@app.route('/')
def index():
  return 'Hello World'
#4.Flask應用程序實例的run方法,啟動WEB服務器
if __name__ == '__main__':
  app.run()

1.Flask對象參數:

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

2.run方法參數:

參數描述
ipIP地址
port端口
debug默認為False,更改為True可以不重啟服務器進行服務器修改(ctrl+s保存即可), 并且報錯后會有相應提示

debug 默認為False,更改為True可以不重啟服務器進行服務器修改(ctrl+s保存即可), 并且報錯后會有相應提示

路由視圖函數

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

1.動態參數:@app.route("/路徑/<類型:變量>")

常用類型

類型描述
int整型
float浮點型
path字符串型

自定義類型:

(1)編寫?定義轉換器類,繼承BaseConverter
(2)編寫init?法
(3)初始化?類,?類變量
(4)將?定義轉換器添加到默認轉換器列表中

例:

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.將自定義轉換器添加到,系統默認的轉換列表中
app.url_map.converters["re"] = MyRegexConverter
print(app.url_map.converters)
# 接收三位整數
# 通過re調用的init方法, 參數1[默認]: app.url_map, 參數2: 自己定義的規則
@app.route('/<re("\d{3}"):number>')
def hello_world(number):
  return "the re number is %s"%number
# 接收四位整數
@app.route('/<re("\d{4}"):number>')
def get_four_number(number):
  return "the four number is %s"%number
# 接收手機號
@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(默認),POST,PUT,DELETE

3.視圖函數返回內容:

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

返回響應體、狀態碼、響應頭

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

(2)手動創建響應體對象:

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

(3)返回json:

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

(4)重定向:

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

例:

"""
url_for, 反解析,根據視圖函數名稱找到,視圖函數的路徑地址,可以攜帶參數
格式: url_for('函數名',key=value), 返回的是一個地址(字符串)
"""""
from flask import Flask,url_for,redirect
app = Flask(__name__)
# 京東, 代號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
#易迅, 代號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):
  #判斷哪個平臺過來的用戶
  if(token == 111):
    return "歡迎京東用戶,光臨淘寶,給你打9折"
  elif(token == 222):
    return "歡迎易迅用戶,光臨淘寶,給你打5折"
  else:
    return "其他用戶"
if __name__ == '__main__':
  app.run()

4.異常處理:

(1)拋出異常(abort):

abort(code)

code為HTTP錯誤狀態碼

(2)異常捕獲(errorhandler):

code為HTTP錯誤狀態碼
@app.errorhandler(code)
def fun():
…

參數加載方式

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

例:

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

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

例:

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

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

app.config.from_envvar()

上述就是小編為大家分享的如何在Flask框架中使用路由和視圖了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

湘阴县| 镇江市| 子长县| 大竹县| 宝鸡市| 蒲城县| 太康县| 广昌县| 仙游县| 临漳县| 香格里拉县| 腾冲县| 方正县| 北京市| 凌云县| 陈巴尔虎旗| 五家渠市| 阳朔县| 诸暨市| 循化| 横山县| 榆树市| 五莲县| 宜州市| 正安县| 卓资县| 淮安市| 郯城县| 绥棱县| 盘山县| 车致| 达州市| 南川市| 梅州市| 三亚市| 阿克苏市| 报价| 河池市| 河北区| 珠海市| 西丰县|