Python3 Flask框架學習筆記(一)

概要:Flask是一個web微框架。“微”也不代表 Flask 功能不強。 微框架中的“微”字表示 Flask 的目標是保持核心簡單而又可擴展。

一、Flask安裝

pip install flask

二、創建Flask工程

  • 首先我們導入了 Flask 類。
  • 創建該類的實例 app,第一個參數是應用模塊或者包的名稱。如果你使用 一個單一模塊,那麼應當使用 _name_ 。
  • 使用 route() 裝飾器來綁定函數的 URL 。
    示例:
from flask import Flask
from flask import request

app = Flask(__name__)


@app.route('/study', methods=['GET'])
def hello_world():
    return 'Hello World!'


@app.route('/study/<username>', methods=['GET'])
def studyvariable(username):
    print(request.method)
    print(request.url)
    return 'Hello, {}'.format(username)

@app.route('/study/studypost', methods=['POST'])
def study_post():
    data = request.form
    print(type(data))
    print(data)
    print(data['username'])
    return 'ok'


if __name__ == '__main__':
    app.run()

三、相關方法,對象

(1)app.route(rule, options)

  • rule 參數表示與該函數的URL綁定。
  • options 是要轉發給基礎Rule對象的參數列表。
  • methods 接收的是一個列表:GET、POST etc.

(2)app.run(host, port, debug, options) (所有參數都是可選的)

  • host :要監聽的主機名, 默認爲127.0.0.1
  • port :設置端口號, 默認值爲5000
  • debug :是否開啓調試,默認爲false。 如果設置爲true,則提供調試信息
  • options :要轉發到底層的Werkzeug服務器。

(3)request

  • 在 Flask 中由全局 對象 request 來提供請求信息,操作請求數據

(4)變量規則
通過把 URL 的一部分標記爲 <variable_name> 就可以在 URL 中添加變量。標記的 部分會作爲關鍵字參數傳遞給函數。通過使用<converter:variable_name> ,可以 選擇性的加上一個轉換器,爲變量指定規則。例如示例中的變量 "<username>"

  • 轉換器類型:
類型 描述
string (缺省值) 接受任何不包含斜槓的文本
int 接受正整數
float 接受正浮點數
path 類似 string ,但可以包含斜槓
uuid 接受 UUID 字符串

四、調試項目

  • 啓動項目後控制檯輸出:
FLASK_APP = app.py
FLASK_ENV = development
FLASK_DEBUG = 0
In folder F:/Python項目/untitled
F:\Python項目\untitled\venv\Scripts\python.exe -m flask run
 * Serving Flask app "app.py"
 * Environment: development
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
  • 通過Postman調試

發送Get請求:http://127.0.0.1:5000/study/wangwu
響應:Hello, wangwu

控制檯輸出:

127.0.0.1 - - [25/Feb/2020 14:13:15] "GET /study/wangwu HTTP/1.1" 200 -
GET
http://127.0.0.1:5000/study/wangwu

發送Post請求:http://127.0.0.1:5000/study/studypost
表單數據:{‘username’:‘lisi’, ‘password’:‘123456’}
響應:ok

控制檯輸出:

<class 'werkzeug.datastructures.ImmutableMultiDict'>
ImmutableMultiDict([('username', 'lisi'), ('password', '123456')])
lisi
127.0.0.1 - - [25/Feb/2020 14:26:42] "POST /study/studypost HTTP/1.1" 200 -
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章