06 Python Flask 教學10 所有文章

[Flask教學] 簡單的 GET 和 Post 方法取得 Flask 網頁資料

flask_get_and_post_methods

▍Flask 接收 GET 方式的網頁資料

GET 取得參數方式有三種:
1. request.args.get(‘name’)
2. request.values.get(‘name’)
3. def index_id(id)

方法一:request.args.get(‘name’)

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’)

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)

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),將參數帶回頁面

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 傳送到指定網址

<!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’) 來接收參數

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,和方法一道理都是一樣的

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教學] 簡單的 GET 和 Post 方法取得 Flask 網頁資料 就到這邊告一段落,感謝收看!
有關Max行銷誌的最新文章,都會發佈在Max的Facebook粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *