1. 程式人生 > >Python Flask學習_POST/重定向/GET模式

Python Flask學習_POST/重定向/GET模式

問題:重新整理瀏覽器頁面時,瀏覽器會重新發送之前傳送的最後一個請求。如果這個請求是包含表單資料的POST請求,重新整理頁面後會再次提交表單。瀏覽器會發出警告:要求在再次提交前確認。

因此,最好別讓Web程式把POST請求作為瀏覽器傳送的最後一個請求。

解決方法是:使用重定向作為重新整理產生的POST請求的響應。重定向響應是一種響應URL(而不是HTML程式碼)的特殊響應,瀏覽器收到相應的URL,會向重定向的URL發起GET請求。

流程示意圖:

客戶端(瀏覽器)--------(POST請求)---------------->伺服器

客戶端(瀏覽器)<-------------(URL)----------------伺服器

客戶端(瀏覽器)--------(GET請求URL)-------------->伺服器

例子:

# test.py

from flask import Flask, render_template, session, redirect, url_for

@app.route("/",methods=['GET','POST'])
def index():
    form = NameForm()
    if form.validate_on_submit():                                #表單資料提交合法時,True
        session['name'] = form.name.data                         #使用了使用者會話session用來儲存POST請求中的name
        return redirect(url_for('index'))                        #重定向(瀏覽器會向URL發起GET請求)
    return render_template('index.html',name=session.get('name'),form=form)      #重定向後返回的模板(session['name']是上一次執行此函式保留的

相關推薦

Python Flask學習_POST/定向/GET模式

問題:重新整理瀏覽器頁面時,瀏覽器會重新發送之前傳送的最後一個請求。如果這個請求是包含表單資料的POST請求,重新整理頁面後會再次提交表單。瀏覽器會發出警告:要求在再次提交前確認。因此,最好別讓Web程式把POST請求作為瀏覽器傳送的最後一個請求。解決方法是:使用重定向作為重

XenDesktop禁用特定盤符定向(優化模式)

png 需要 blog module 禁止 oss top machine fff Citrix策略無法根據設備以優化模式限制驅動器重定向,需要更改客戶端註冊表解決方法1:64位系統定位到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Cit

python flask學習第2天 URL中兩種方式傳參

  新建立專案   自己寫個url對映到自定義的檢視函式           在url中傳遞引數 app.py   from flask import Flask app = F

golangWeb框架---github.com/gin-gonic/gin學習七(定向、中介軟體Goroutines、http自定義配置)

重定向 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { router := gin.Default() router.GET("/raw",

《快樂的Linux命令列》學習記錄——定向

I/O重定向: “I/O” 代表輸入/輸出,通過這個工具,你可以重定向命令的輸入輸出,命令的輸入來自檔案,而輸出也存到檔案。也可以把多個命令連線起來組成一個強大的命令管道。 本章主要介紹的命令如下: • cat -連線檔案 • sort -排序文字行 • uni

【unix學習定向、管道、連結檔案

重定向 不在顯示屏列印命令的錯誤資訊,當找不到檔案的時候,遮蔽了錯誤資訊。 2和>之間不要有空格 [s14516@gdufs]$find / -name 'stdio.h' 2> /dev/null 整合檔案內容 f1和f2的檔案內容合起來

關於Flask中的定向問題

from flask import Blueprint, request, render_template, make_response, redirect, url_for blue = Blueprint('first', '__name__') # 帶引數的render_template

Python-1、輸出定向到日誌檔案的例子

1.執行環境:Mac自帶Python2.7 2.使用過程:開啟終端未指定python執行檔案路徑下輸入 Last login: Sat Jan  6 11:22:52 on ttys003 applematoiMac:~ apple$python Python 2.7

Python】標準輸出定向踩坑

有時候,輸出的內容太多直接列印在控制檯是沒辦法檢視的,所以,就會考慮將輸出列印在指定的檔案中。 方法一:將標準輸出賦值為一個檔案控制代碼,使用完成之後關閉。 output = sys.stdout outputfile = open('test.txt', '

C Primer Plus學習_29 定向和檔案

重定向程式可以通過兩種方式使用檔案,第一種方法是,顯示使用特定的函式開啟檔案、關閉檔案、讀取檔案、寫入檔案,諸如此類書中13章才會介紹,這裡我也並不知道怎麼說,就留到13章介紹吧;第二種方法,設計能與鍵盤和螢幕互動的程式,通過不同的渠道,重定向輸入或輸出至檔案,這種方法有所限

Python Flask學習_使用flask-login實現認證藍本(一)

藍本可以認為是一類路由的集合。一個Web App實現多個藍本的目的是,把不同的路由分開,便於維護。再來複習一下,建立藍本。1、在app包下建立新package,命名為auth。2、建立藍本物件例項# app/auth/__init__.py from flask import

Python Flask學習_確認賬戶(使用電子郵件)

使用者的狀態可以分為:未登入,登入但賬戶未確認和登入且賬戶確認。目標是:1.未登入。顯示一個歡迎的頁面:2.登入但未確認。顯示一個需要確認賬戶的頁面和連結。3.登入且賬戶確認:顯示歡迎XXX的頁面:一、使用者登入# app/main/views.py @main.route

python 檔案輸出與定向 ,輸出的內容會在記憶體中暫存,不會立刻輸出到檔案中

1、使用write寫磁碟檔案 python 中使用write,將資料寫入到檔案中,但是並不是write之後,就立刻寫入到檔案(比如a.txt)中,python的write會先將資料放在記憶體的緩衝區中,等到積累了一定的量,再一起寫入到磁碟檔案中。這樣可以提高效能,減少訪問磁

Python Flask學習筆記之Hello World

bubuko 筆記 out 混亂 name html ctrl 激活 pro Python Flask學習筆記之Hello World 安裝virtualenv,配置Flask開發環境 virtualenv 虛擬環境是Python解釋器的一個私有副本,在這個環境中可以安裝私

三十、pythonFlask框架(二)檢視:返回狀態碼、定向、狀態保持、請求鉤子

一、返回狀態碼和abort函式 1.return直接返回狀態碼: return可以返回自定義的不符合http協議的狀態碼。 作用:實現前後端的資料互動。 程式碼: from flask import Flask app = Flask(__name__) @app.rou

四十、python學習之Django框架(二):響應,定向,

二、響應: 檢視在接收請求並處理後,必須返回HttpResponse物件或子物件。 HttpRequest物件由Django建立,HttpResponse物件由開發人員建立。 1.HttpResponse: from django.http import Htt

Flask Web 開發 GET POST兩種請求及定向

簡單講一下基礎概念 比如在web表單的開發過程中 一個url針對的是一個web表單頁面,那麼,第一次訪問應用時,他使用的是get請求!!只有當用戶填完表單並符合要求提交時候,才是POST請求 這個非常重要!! 如下圖,如果第一次訪問程式,他用的是GET請求 但是

flask學習筆記(三):URL傳參、URL反轉、定向

1、URL傳參 對一個固定頁面下傳入url引數。需要給定一個id,並且使用<id>傳參,這樣才能返回一個值。 #-*- coding:utf-8 -*- from flask import Flask app = Flask(__name__) @app.

Shell 腳本學習筆記十:Shell輸入輸出定向

描述符 獨立 文件重定向 eof 輸出 合並 包含 span 輸出重定向 command > file 將輸出重定向到 file。 command < file 將輸入重定向到 file。 command >> file

linux學習記錄-命令替換-通配符-定向-管道

linux命令替換:$(command),`command`touch ./file-$(date +%F-%H-%M_%S).txtbash支持的引號有三種:``:命令替換"":弱引用,可以實現變量替換‘‘:強引用,不完成變量替換文件名通配 globbing* 任意長度的任意字符? 任意長度單個[] 匹配指