Flask入門(二)
阿新 • • 發佈:2019-01-09
通過上篇初步瞭解python的三大框架之一Flask。
補充:
列出pip已經安裝好的模組:
pip freeze
Flask框架下常用的擴充套件包:
Flask-SQLalchemy:操作資料庫;
Flask-script:插入指令碼;
Flask-migrate:管理遷移資料庫;
Flask-Session:Session儲存方式指定;
Flask-WTF:表單;
Flask-Mail:郵件;
Flask-Bable:提供國際化和本地化支援,翻譯;
Flask-Login:認證使用者狀態;
Flask-OpenID:認證;
Flask-RESTful:開發REST API的工具;
Flask-Bootstrap:整合前端Twitter Bootstrap框架;
Flask-Moment:本地化日期和時間;
Flask-Admin:簡單而可擴充套件的管理介面的框架
程式碼如下:
# -*- encoding: utf-8 -*- #導包 #導包 匯入重定向模組 #url_for是簡易定址跳轉 from flask import Flask #建立flask物件 from flask import redirect,url_for,jsonify #使用flask路由器,制定網址和控制器 app = Flask(__name__) #方法1 @app.route('/') def index(): return "指定的網址裡想輸出的內容" #方法2 #給網址增加引數功能使用<變數名>,路由方法要和路由定義的引數同步 #方法一中我們還可以加入引數 加入引數時用'<>' #注意:①是"/"分割 不是"," #②我們加入幾個引數,就要傳進幾個引數 用","相隔 @app.route('/hello/<id>/<name>') def hello(id,name): return "傳入的第一個引數是%s,第二個引數是%s"%(id,name) #使用重定向模組來進行跳轉,在重定向跳轉首先要匯入一個包:redirect #在這裡你傳的什麼 在你網址的末尾就加入什麼 @app.route("/1") def reule(): #注意:書寫的格式,後邊的"/"不能丟 return redirect('http://127.0.0.1:5000/') #使用url_for方法來實現簡易的站內跳轉,引數指定路由方法名稱 @app.route('/2') def reurl_in(): #return 返回 url_for後邊是方法名 不是網址 return redirect(url_for('index')) #使用jsonify模組讓網頁直接顯示json資料 @app.route('/json') def re_json(): #定義好資料格式 json_dict={'id':10,'title':'flask的應用','content':'flask的json格式'} #使用jsonify來將定義好的資料轉換成json格式,並返回給前端 #return 返回的是二進位制碼,需要解碼 return jsonify(json_dict) 複製程式碼
下面來說說兩個前置訪問和兩個後置訪問:
在第一次請求之前呼叫的方法
#前置訪問①
#這裡的第一次是指啟動服務後的第一次訪問 以後不會重複 除非重啟服務 可以重新整理幾次和重啟服務試試
@app.before_first_request
def before_first_request():
print('這是第一次請求之前呼叫')
#前置訪問②
#在每一次請求之前呼叫
#每請求一次就呼叫顯示一次 你可以多重新整理幾次試一試
@app.before_request
def before_request():
print('每一次呼叫這個方法')
下面這是兩個後置訪問,特殊的是它們帶引數
#後置訪問①
#在請求之後呼叫的發方法,呼叫之後必須傳響應引數,然後將響應內容返回
@app.after_request
def after_request(response):
print('在請求之後,呼叫這個方法')
return response
#這裡一定要記住返回引數
#後置訪問②
#在請求之後,呼叫伺服器出現的錯誤資訊
#在發生錯誤 意外情況 的時候丟擲錯誤 方便查詢
@app.teardown_request
def teardown_request(e):
print('伺服器出現的錯誤是%s'% str(e))
#這裡你要把丟擲的錯誤轉換成字串顯示出來
# 使用程式入口將flask應用啟動,port引數
if __name__ == "__main__":
app.run(debug=True,port=5000)
#這裡指定進入debug模式,預設為False 這裡設定為True
#poot=5000 為防止埠重複 我們可以設定沒有用過的埠來搭建自己的服務,debug=True這樣在隨意修改網頁資訊時就不用重新啟動服務了
一句自己喜歡的話和大家分享:
上人生的旅途罷。前途很遠,也很暗。然而不要怕。不怕的人的面前才有路。