1. 程式人生 > >Flask Web開發入門(九)之表單處理

Flask Web開發入門(九)之表單處理

本章我們介紹Flask Web開發中的表單處理

application/json型別請求

  • 前臺請求程式碼:
            $.ajax({
                url: '/add'
                , type: 'POST'
                , data: JSON.stringify(data.field)
                , contentType: 'application/json'
                , success: function (response) {
                    console.log(response);
                    if
(response.code == 0) { layer.msg('新增成功!'); } else { layer.alert('新增失敗!') } } })
  • 後臺捕獲請求,request.data儲存了我們的請求資料
    這裡寫圖片描述

  • 後臺出處理程式碼,其中引數d為dict型別資料request.data

def add_monitor(d):
    logger.debug('add monitor is %s'
% d) d = json.loads(d) conn = monitor_db.get_connection_with_url(url) # Content-Type: application/json conn.execute(T_Monitor.insert(), [{ 'credit_type': d['credit_type'] , 'query_type': d['query_type'] , 'credit_status': d['credit_status'] , 'elapsed_time'
: int(random.random() * 100) }])

application/x-www-form-urlencoded型別請求

  • 我們稍微修改下前臺傳送程式碼,不指定contentType引數:即指定請求內容格式。注意:雖然我們的請求資料是JSON字串,但Ajax中沒有指定contentType引數,那麼資料請求格式仍舊為application/x-www-form-urlencoded
         $.ajax({
                url: '/add'
                , type: 'POST'
                , data: JSON.stringify(data.field)
                , success: function (response) {
                    console.log(response);
                    if (response.code == 0) {
                        layer.msg('新增成功!');
                    } else {
                        layer.alert('新增失敗!')
                    }
                }
            })

這裡寫圖片描述

通過後臺程式碼調式,我們可以看到request.form儲存了前臺的請求資料如下:
這裡寫圖片描述

注意上圖紅框部分:

  • request.form是一個ImmutableMultiDict型別的物件

  • request.form的鍵值key儲存了請求資料的JSON字串

  • request.form的長度為1

因此,通過上面的程式碼分析,我們定義Flask表單處理後臺程式碼實現如下,其中引數d是一個ImmutableMultiDict型別物件:

# add monitor
def add_monitor(d):
    logger.debug('add monitor is %s' % d)
    conn = monitor_db.get_connection_with_url(url)

    for key in d.keys():
        logger.debug("form data is %s" % json.loads(key))
        d_dict = json.loads(key)
        conn.execute(T_Monitor.insert(), [{
            'credit_type': d_dict['credit_type']
            , 'query_type': d_dict['query_type']
            , 'credit_status': d_dict['credit_status']
            , 'elapsed_time': int(random.random() * 100)
        }])

實現效果

這裡寫圖片描述

相關推薦

Flask Web開發入門處理

本章我們介紹Flask Web開發中的表單處理 application/json型別請求 前臺請求程式碼: $.ajax({ u

Flask Web開發入門檔案上傳

本章我們介紹Flask Web開發中涉及的檔案上傳模組 定義後臺接收處理邏輯 # http://flask.pocoo.org/docs/0.12/patterns/fileuploads/ @app.route('/upload', methods=[

Flask Web開發入門簡單的登入驗證

Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. 我們的目標是通過Flask實現一個簡單的web系統,系統需要使用者登入,未登入使

基於Python的Flask Web 開發 筆記 1

1)安裝 $ pip install flask 2) 主要程式結構 from flask import Flask from flask import request app = Flask(__name__) #初始化 @app.route('/'

python web py入門31- javascript的邏輯處理

前面已經學習過比較處理,現在要學習一種邏輯處理操作,這種操作其實在日常生活裡非常多,比如你過馬路時,就要看紅綠燈,當紅燈亮起,其實就表示布林狀態為true,熄滅就表示為false。又比如你家裡按下電燈的

網頁開發學習

表單是網頁中提供的一種互動式操作手段,無論是提交搜尋的資訊,還是網上註冊等都需要使用表單。使用者可以通過提交表單資訊與伺服器進行動態交流。表單主要可以分為兩部分:一是HTML原始碼描述的表單;二是提交後的表單處理,需要使用伺服器端編寫好 JSP等程式碼對客戶端提交的資訊作出迴應。

SpringMVC學習系列11 標籤

本篇我們來學習Spring MVC表單標籤的使用,藉助於Spring MVC提供的表單標籤可以讓我們在檢視上展示WebModel中的資料更加輕鬆。 一.首先我們先做一個簡單了例子來對Spring MVC表單表單標籤的使用有一個大致的印象,然後再結合例子對各個標籤介紹一下如何使用。 1.首先,在com.de

Flask Web開發入門北京快樂8出售文件上傳

url sele 模塊 con ESS isp accept NPU render 本章北京快樂8出售 dsluntan.com 我們介紹Flask Web開發中涉及的文件上傳模塊 定義後臺接收處理邏輯@app.route(‘/upload‘, methods=[‘POS

安卓開發筆記—— HttpURLConnection請求訪問Web服務,解析JSON資料,多執行緒,CardView佈局技術bilibili的使用者視訊資訊獲取軟體

中山大學資料科學與計算機學院本科生實驗報告 (2018年秋季學期) 一、實驗題目 WEB API 第十四周實驗目的 學會使用HttpURLConnection請求訪問Web服務 學習Android執行緒機制,學會執行緒更新UI 學會解析JSO

C語言入門include、多檔案開發

include基本概念 #include <stdio.h> // 告訴系統printf函式是存在的, 告訴系統printf函式的格式(宣告printf函式) // include的作用

《ES6標準入門Class

昨天,360面試官問了個問題,說:用ES5怎麼實現ES6中的class? 因為沒有看過class,就說不了解,結果回來一看,這不就是ES5怎麼建立物件嗎???我寫了那麼多,看了那麼多,就這麼不會的完事的,哎。。。今天,來總結一下ES6中的Class 極客學院講的很詳細,參

Django web開發系列圖書借閱管理系統需求分析

一 前言 Python selenium系列文章之後,一直想寫關於Django的,把python web開發相關的知識理一理,但卻忙於各種事,拖到了現在。元旦前,部門新進一批圖書,突然,靈光一現,這些書籍如果以後就這樣隨意借出去,散落在幾十號兄弟姐妹手裡,估計,以後找書、借書都要靠喊了。於是,就想開發一

Android開發入門——推箱子游戲開發實戰

繪製遊戲區域   本文是推箱子游戲開發實戰系列文章第九篇,是在第八篇的基礎上講如何繪製遊戲區,如下面圖3所示。    本文目標   本文描述如何繪製遊戲區和搬運工。如圖1,在玩家選擇關卡後,將進入遊戲介面(圖2)。現階段,遊戲介面只有標示遊戲區域的網格線

python web py入門17- 開啟chrome的開發工具視窗

在前面已經介紹了怎麼樣安裝chrome瀏覽器,安裝完成之後,你可以開啟它了。如下圖所示:然後在位址列裡輸入:about:blank, 就會開啟一個空白的視窗。接著來開啟它一個很重要的工具,就是開發工具視

Seafile深入學習 web檔案斷點續傳和 NFS共享

Seafile的檔案斷點續傳:原理是這樣的,你上傳一個大檔案因為某種原因中斷了上傳(可能是網路原因或者什麼),Seafile會記住中斷的位置,然後你必須重新上傳這個檔案到同一個目錄,然後伺服器會告訴你從哪裡開始上傳。這裡有一些限制:1.檔案更新和資料夾上傳不支援斷點續傳。檔案

資料探勘入門系列教程基於sklearn的SVM使用

目錄介紹基於SVM對MINIST資料集進行分類使用SVMSVM分析垃圾郵件載入資料集分詞構建詞雲構建資料集進行訓練交叉驗證煉丹術總結參考 介紹 在上一篇部落格:資料探勘入門系列教程(八點五)之SVM介紹以及從零開始公式推導中,詳細的講述了SVM的原理,並進行了詳細的數學推導。在這篇部落格中,主要是應用SVM,

微信小程序開發教程視圖層——.wxss詳解

hone mnt 而且 padding 移動 圖層 組成 特性 -1   WXSS是一套樣式語言,用於描述WXML的組件樣式。   官方文檔表示,WXSS的選擇器目前支持(“.class”、“#id”、“elemnt”、“element,element”、“::after”

Spring入門IoC

使用 bsp martin 需要 容器 nbsp 依賴註入 tin 這就是 一、IoC定義   IoC,即控制反轉。開發者在使用類的實例之前,需要先創建對象的實例。但是IoC將創建實例的任務交給IoC容器,這樣開發應用代碼時只需要直接使用類的實例,這就是IoC。在討論控制反

Shell入門數組

定義 col 元素 array 多維 開始 code logs shel 一、一維數組   bash支持一維數組(不支持多維數組),並且沒有限定數組的大小。   類似與C語言,數組元素的下標由0開始編號。 二、定義數組 在Shell中,用括號來表示數組,數組元素用"空格

MySQL數據的查詢詳解SELECT語法

clas reg 3.2 查詢語句 我們 lin where 過濾 情況 上一篇講了比較簡單的單表查詢以及MySQL的組函數,這一篇給大家分享一點比較難得知識了,關於多表查詢,子查詢,左連接,外連接等等。希望大家能都得到幫助! 在開始之前因為要多表查詢,所以搭建好環境: