flask 本身相當於乙個核心,其他幾乎所有的功能都要用到擴充套件(郵件擴充套件
flask-mail
,使用者認證
flask-login
,資料庫
flask-sqlalchemy
),都需要用第三方的擴充套件來實現。比如可以用
flask
擴充套件加入
orm、窗體驗證工具,檔案上傳、身份驗證等。
flask
沒有預設使用的資料庫,你可以選擇
mysql
,也可以用
nosql
flask是python三大web框架之一,比之其他兩大框架django和tornado而言,它更加的輕量化,開發效率更高,是入門web框架的首選。
flask-admin:簡單而可擴充套件的管理介面的框架
flask有兩大核心:
werkzeug
和jinja2
- werkzeug實現路由、除錯和
web伺服器閘道器介面
- jinja2實現了模板。
werkzeug是乙個遵循
wsgi
協議的python
函式庫
- 其內部實現了很多
web框架底層的東西,比如
request
和response
物件;
- 與
wsgi
規範的相容;支援
unicode
;
- 支援基本的會話管理和簽名
cookie
;
- 整合
url請求路由等。
werkzeug庫的
routing
模組負責實現
url
解析。不同的
url
對應不同的檢視函式,
routing
模組會對請求資訊的
url進行解析,匹配到
url對應的檢視函式,執行該函式以此生成乙個響應資訊。
routing模組內部有:
rule類
用來構造不同的url模式的物件,路由
url規則
安裝flask
pip install flask
列出pip已經安裝好的模組
pip freeze
三種匯入配置檔案的方式:
# 配置物件,裡面定義需要給
新增的一系列配置
class config(object):
debug = true
# 從配置物件中載入配置
# 從配置檔案中載入配置
#由環境變數裡面來載入配置
路由配置,指定methods方法,返回json資料
def demo4():
json_dict = {
"user_id": 10,
"user_name": "laowang"
return jsonify(json_dict)
統一捕獲異常
#統一捕獲異常
def internal_server_error(e):
return '伺服器搬家了
'鉤子的四大方法
# 在第一次請求之前呼叫,可以在此方法內部做一些初始化操作
def before_first_request():
print("before_first_request")
# 在每一次請求之前呼叫,這時候已經有請求了,可能在這個方法裡面做請求的校驗
# 如果請求的校驗不成功,可以直接在此方法中進行響應,直接
return
之後那麼就不會執行檢視函式
def before_request():
print("before_request")
# 在執行完檢視函式之後會呼叫,並且會把檢視函式所生成的響應傳入
,可以在此方法中對響應做最後一步統一的處理
def after_request(response):
print("after_request")
return response
# 請每一次請求之後都會呼叫,會接受乙個引數,引數是伺服器出現的錯誤資訊
def teardown_request(e):
print("teardown_request")
除錯介面的兩種方法
1 編寫python指令碼進行除錯
2 使用postman軟體進行除錯
虛擬環境概念
為了給專案提供獨立的安裝環境,防止多專案依賴衝突
虛擬環境安裝
pip install virtualenv
進入專案安裝虛擬目錄
virtualenv venv
進入命令目錄
cd ./venv/scripts
啟用虛擬環境
activate
離開虛擬環境
deactivate
樣式功能以及設計功能
目錄 設計樣式 樣式選單功能主要是用來簡化的重複性的文字標題格式處理工作,利用樣式選單裡面的選項卡選擇適合的樣式對目標標題進行修改。樣式選單功能在開始選單裡面。1.單行修改標題只需要將游標放在標題的最後。2.選擇點選合適的標題樣式。1.選中要修改的多行標題。2.選擇點選合適的標題樣式。檢視標題目錄可...
Zookeeper的功能以及工作原理
1.zookeeper是什麼?zookeeper是乙個分布式的,開放原始碼的分布式應用程式協調服務,是google的chubby乙個開源的實現,它是集群的管理者,監視著集群中各個節點的狀態根據節點提交的反饋進行下一步合理操作。最終,將簡單易用的介面和效能高效 功能穩定的系統提供給使用者 2.zook...
Zookeeper的功能以及工作原理
前言前面有一篇部落格講到了spring boot整合jms的使用 但是最近遇到乙個需求,需要同時使用jms的佇列和topic,於是就有了下面的測試 消費者 解決方案如下 configuration enablejms public class jmsconfig bean public jmslis...