Table
▍Flask 接收 GET 方式的網頁資料
GET 取得參數方式有三種:
1. request.args.get(‘name’)
2. request.values.get(‘name’)
3. def index_id(id)
方法一:request.args.get(‘name’)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from flask import Flask, request from flask import render_template app = Flask(__name__) #Type 1 @app.route("/", methods=['GET']) def index(): name = request.args.get('name') return "Hello"+name if __name__ == '__main__': app.debug = True app.run() |
方法二:利用 request.values.get(‘name’)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
rom flask import Flask, request from flask import render_template app = Flask(__name__) #Type 2 @app.route("/", methods=['GET']) def index(): name = request.values.get('name') return "Hello" + name if __name__ == '__main__': app.debug = True app.run() |
方法三:利用 def index_id(id)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from flask import Flask, request from flask import render_template app = Flask(__name__) #Type 3 @app.route("/<int:id>", methods=['GET']) def index_id(id): return "Hello"+str(id) if __name__ == '__main__': app.debug = True app.run() |
如果要將取得資料再傳入到html內,可以用render_template(‘abc.html’, name_template=name),將參數帶回頁面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from flask import Flask, request from flask import render_template app = Flask(__name__) #將GET取得資料,傳到html內 @app.route("/name", methods=['GET']) def index_name(): name = request.args.get('name') return render_template('abc.html', name_template=name) if __name__ == '__main__': app.debug = True app.run() |
▍Flask 接收 POST 方式的網頁資料
POST 取得參數方式有兩種:
1. request.form.get(‘username’)
2. request.values.get(‘username’)
開始前先建立 html,裡面寫一個簡單的 form,當使用者按下 submit 後會將參數username 傳送到指定網址
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello Page</title> </head> <body> <form method='post' action="/post_submit"> <input type='text' name='username'> <button type='submit'>Submit</button> </form> </body> </html> |
方法一:利用 request.form.get(‘username’)
當使用者在網頁上點擊 submit 按鈕後,會傳送 POST 方法的 http,我們在 Flask sever 中使用 request.values.get(‘username’) 來接收參數
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from flask import Flask, request, render_template app = Flask(__name__) @app.route("/post_submit", methods=['GET', 'POST']) def submit(): if request.method == 'POST': return 'Hello ' + request.form.get('username') return render_template('post_submit.html') if __name__ == '__main__': app.debug = True app.run() |
方法二:利用 request.values.get(‘username’)
這邊只是將剛剛的 request.form 修改成 request.values,和方法一道理都是一樣的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from flask import Flask, request, render_template app = Flask(__name__) @app.route("/post_submit", methods=['GET', 'POST']) def submit(): if request.method == 'POST': return 'Hello ' + request.values.get('username') return render_template('post_submit.html') if __name__ == '__main__': app.debug = True app.run() |
最後就是運行指令:python main.py 就完成囉!
關於 Flask 教學的延伸閱讀:
▍關於 Flask 教學系列目錄:
▍其他 Flask 相關教學:
- 【Flask教學系列】Flask 為甚麼需要 WSGI 與 Nginx
- 【Flask教學系列】Flask-SQLAlchemy 資料庫連線&設定入門 (一)
- 【Flask教學系列】Flask-JWT-Extended 實作
- 【Flask教學系列】實作 Flask CORS
- 【Flask教學系列】實作 Flask CSRF Protection
- 【Flask教學系列】實作 Dockerfile + nginx + ssl + Flask 教學 (附GitHub完整程式)
那 [Flask教學] 簡單的 GET 和 Post 方法取得 Flask 網頁資料 就到這邊告一段落,感謝收看!
有關Max行銷誌的最新文章,都會發佈在Max的Facebook粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!