您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何在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方法參數:
參數 | 描述 |
---|---|
ip | IP地址 |
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框架中使用路由和視圖了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。