# NKUST ITC 108-1 Python[5] ###### [https://python-slide.macs1207.dev](https://python-slide.macs1207.dev) ###### 2019/11/26 ###### tags: `NKUST ITC` `Python 社課` [TOC] --- ## [Github](https://github.com/macs1207/python-tutorial) ---- ## 剩下的時間安排 |日期|內容| |-|-| |11/26|Flask| |12/17|可能會辦活動| |12/24 or 26|期末社員大會| --- ## Flask ---- ### 簡介一下 Python的後端框架相當多,比較常見的 - Flask - Django - Tornado Flask是比較輕量化的那種 ---- ### 首先安裝 ``` pip install flask ``` ---- ### 那麼 Flask怎麼用呢 ---- ```python= 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 ---- ### 順便提一下網址格式 ![](https://s3.ap-south-1.amazonaws.com/empictures/anonymous/urlformat.png) - [圖源](http://www.examsmyantra.com/article/62/java/networking-in-java-the-java.net-class-and-working-with-url) ---- ### 如果想指定port ```python= 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的參數呢 ```python= 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 ```python= 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呢 ```python= 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 ```python= 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做一個密碼查詢小程式 - 跟剛剛的大致上差不多 - 比如 http://127.0.0.1:8080?account=google 就回傳google的帳號密碼 --- ## Discord - [https://discord.gg/hmUeXeH](https://discord.gg/hmUeXeH) ![](https://i.imgur.com/Ev2zJUe.png) ---- ## Telegram - [https://t.me/kuasitc](https://t.me/kuasitc) ![](https://i.imgur.com/mYOQ7nT.png) ---- ## 作者 - 社長 [Macs](https://github.com/macs1207) - 副社長 [呆呆大蛙](https://github.com/daidaidarwa) ---- ## 參考資料 - [Python-100-Days](https://github.com/jackfrued/Python-100-Days) - [Wikipedia](https://zh.wikipedia.org) - [成大X-Village教材](https://www.facebook.com/pages/category/Education/X-Village-423736361424301)
{"metaMigratedAt":"2023-06-15T02:00:15.192Z","metaMigratedFrom":"Content","title":"NKUST ITC 108-1 Python[5]","breaks":true,"contributors":"[{\"id\":\"0543727d-0e35-443a-a198-84223cf6d534\",\"add\":3368,\"del\":226}]"}
    373 views