changed 6 years ago
Linked with GitHub

NKUST ITC 108-1 Python[5]

https://python-slide.macs1207.dev
2019/11/26
tags: NKUST ITC Python 社課


Github


剩下的時間安排

日期 內容
11/26 Flask
12/17 可能會辦活動
12/24 or 26 期末社員大會

Flask


簡介一下

Python的後端框架相當多,比較常見的

  • Flask
  • Django
  • Tornado

Flask是比較輕量化的那種


首先安裝

pip install flask

那麼 Flask怎麼用呢


from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "Hello world" if __name__ == '__main__': app.run()

這時,瀏覽器打開 http://127.0.0.1:5000
預設port是5000


順便提一下網址格式


如果想指定port

from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "Hello world" if __name__ == '__main__': app.run(port=8080)

http://127.0.0.1:8080


還記得GET method嗎

  • 怎麼取得GET的參數呢
from flask import Flask, request app = Flask(__name__) @app.route('/', methods=["GET"]) def index(): name = request.args.get("name") return "Hello, {}".format(name) if __name__ == '__main__': app.run()

http://127.0.0.1:5000/?name=nameeee


另一種GET

from flask import Flask, request app = Flask(__name__) @app.route('/<name>', methods=["GET"]) def index(name): return "Hello, {}".format(name) if __name__ == '__main__': app.run(port=8080)

http://127.0.0.1:8080/namee


那 POST呢

from flask import Flask, request app = Flask(__name__) @app.route('/', methods=["POST"]) def index(): name = request.values['name'] return "Hello, {}".format(name) if __name__ == '__main__': app.run(port=8080)

請用requests對 http://127.0.0.1:8080 post看看


怎麼讓一個route應付兩種method

from flask import Flask, request app = Flask(__name__) @app.route('/', methods=["GET", "POST"]) def index(): if request.method == "GET": data = request.args.get("data") return "GET, {}".format(data) elif request.method == "POST": data = request.values['data'] return "POST, {}".format(data) if __name__ == '__main__': app.run(port=8080)

最後的練習

  • 用flask做一個登入驗證小程式
    • 帳號密碼直接設定在Python中就好,Dict之類的
    • 回傳登入成功或失敗
    • 用requests的POST測試就好
  • 用flask做一個密碼查詢小程式

Discord


Telegram


作者


參考資料

Select a repo