python web開發-flask中訪問請求資料request

來源:互聯網
上載者:User

標籤:程式設計語言   Python   

Request對象在web應用的開發中是一個非常重要的對象,主要用來擷取使用者發來的請求資料。

常用屬性參考:http://docs.jinkan.org/docs/flask/api.html#flask.request

下面我們以一個表單提交的例子來說明一些常用request屬性的使用。

1. 建立一個表單的template

在templates檔案夾下面建立form.html模板檔案,輸入下面的代碼

{% extends "base.html" %}
{% import "forms.html" as forms %}
{% block content %}
???? <form action="/doPost" method="post">
???????? <dl>
???????????? <dt>UserName</dt>
???????????? <dd>{{ forms.input("username") }}</dd>
???????????? <dt>Password</dt>
???????????? <dd>{{ forms.input("password",type="password") }}</dd>
???????????? <dd><input type="submit" value="提交"/></dd>
???????? </dl>

???? </form>

{% endblock %}

其中用到了forms.html中的宏,關於宏的應用請參考本系列文章的其它內容。通過調用宏建立了一個username和password的文字框,同時定義action是/doPost即把資料提交到/doPost這個url上,method用Post.

2. 定義表單展示url

在code.py中定義一個返回表單的方法:

@app.route("/form")
def renderForm():
???? return render_template("form.html")

3. 編寫一個表單資料處理的方法

在code.py中定義表單處理的函數,url要定義為form.html中action所指向的url,即”/doPost”,

@app.route("/doPost",methods=["post"])
def handPost():
???? username = request.form["username"]
???? password = request.form["password"]
???? return "username:"+username+",password:"+password

這個方法會返回使用者提交的username和password的資料

4. 測試應用

啟動應用訪問/form這個url,效果

在文字框中輸入username和password,這裡我們用zhang san和password作為這兩個框的值:

點擊提交,會轉到doPost路徑,效果

這樣一個簡單的表單提交就完成了

如果我們在提交資料給doPost這個方法的時候,在url上加了參數,可以通過arg來擷取,

比如我們在form.html上給action加上一個參數?q=postString,

<form action="/doPost?q=postString" method="post">

同時,在處理post請求的方法中添加q參數的處理代碼

arges = request.args["q"]

整體代碼如下:

再次提交後效果:

通過request.values可以擷取forms和url上的所有參數的值,比如,我們在doPost方法裡添加一個處理values的代碼

requestValues = request.values.get("username")
requestValues2 = request.values.get("q")
?
再次提交後,效果

python web開發-flask中訪問請求資料request

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.