欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python的CGIHTTPServer交互實(shí)現(xiàn)詳解

 更新時(shí)間:2018年02月08日 13:42:00   作者:tanghaiyu777  
本篇文章主要給大家詳細(xì)分析了Python的CGIHTTPServer交互實(shí)現(xiàn)過(guò)程以及相關(guān)代碼分享,有興趣的參考學(xué)習(xí)下。

介紹

對(duì)于服務(wù)器后端開(kāi)發(fā)者而言,有時(shí)候需要把自己的一些服務(wù)直接暴露給PM或者其他RD使用,這個(gè)時(shí)候需要搭建一套web服務(wù)可以和前端用戶做簡(jiǎn)單交互,按照最常規(guī)的做法,一般是用Apache或者Nginx作為webserver后端使用cgi或者fcgi程序或者腳本進(jìn)行處理,當(dāng)然這種做法安全且正規(guī)。

但是我個(gè)人更喜歡一個(gè)更簡(jiǎn)單的做法:就是利用python自帶的CGIHTTPServer作為服務(wù)器,然后通過(guò)一個(gè)簡(jiǎn)單的html頁(yè)面進(jìn)行交互,通過(guò)post請(qǐng)求直接調(diào)用總控腳本,與用戶進(jìn)行交互。

使用方法和示例

啟動(dòng)服務(wù)

Python的CGIHTTPServer一般是與python一起安裝的,使用如下命令既可以啟動(dòng),為了便于組織目錄,建議先建立一個(gè)目錄,比如web,然后再運(yùn)行下面的命令。

nohup python -m CGIHTTPServer 8088 &

上面的命令使CGIHTTPServer在非中斷后臺(tái)運(yùn)行,運(yùn)行l(wèi)og可以通過(guò)當(dāng)前目錄下的nohup.out查看。

編寫(xiě)交互頁(yè)面

在啟動(dòng)server的當(dāng)前目錄下,建立一個(gè)index.html文件,編寫(xiě)內(nèi)容如下。

<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=gbk">
  <title> Python-CGIHTTPServer使用示例 </title>
  <meta name="author" content="Haiyu">
  <center><h1> Python-CGIHTTPServer使用示例 </h1></center>
 </head>
 <hr style="height:5px;border:none;border-top:5px ridge green;" />
 <body>
  <br/>
  <center><h2>計(jì)算圓的周長(zhǎng)</h2></center>
  <center>
  <p>請(qǐng)輸入圓的半徑長(zhǎng)度.</p>
  <br/>
  <form action="cgi-bin/c_length.sh" method="post" enctype="text/plain" target="_blank">
   radius:<input type="text" id="radius" name="radius" value=""/>
   <input type="submit" id="c_length" name="c_length" value="計(jì)算周長(zhǎng)">
  </form>
  </center>
  <br/>
  <br/>
  <br/>
 </body>
 <hr style="height:5px;border:none;border-top:5px ridge green;" />
 <br/>
 <br/>
</html>

這個(gè)界面的功能非常簡(jiǎn)單,使用一個(gè)form表單接收用戶的提交的半徑參數(shù),然后計(jì)算完周長(zhǎng)之后進(jìn)行返回,使用post請(qǐng)求。

CGI腳本

這個(gè)才是我們后端開(kāi)發(fā)同學(xué)最關(guān)心的內(nèi)容,這個(gè)腳本就是用來(lái)完成主要的邏輯操作進(jìn)行返回,因?yàn)槲覀兒蠖送瑢W(xué)關(guān)注更多的不是交互界面的華麗而是邏輯處理的正確性和嚴(yán)謹(jǐn)性,根據(jù)我的經(jīng)驗(yàn),后端不管多么復(fù)雜的處理流程,最終都可以用一個(gè)腳本包起來(lái),根據(jù)輸入得到輸出,這里面的輸入就是我們用戶提交的參數(shù),輸出就是我們經(jīng)過(guò)層層處理之后需要返回的內(nèi)容。
這個(gè)腳本建議放在server運(yùn)行目錄下新建立的cgi-bin目錄中。

#!/bin/bash

mysql_bin=/home/work/mysql/bin/mysql

echo "Content-Type:text/html; Charset=gbk"
echo ""

echo "<br/>"
radius=0
c_length=0
if [[ "$REQUEST_METHOD" == "POST" ]];then
 read vars
 echo "$vars" | awk -F "=" '{print $2}' > temp
 dos2unix temp
 radius=`cat temp`
 c_length=$(echo "scale=2;2*3.14*$radius" | bc)

 echo "<br/>"
 echo "<table border="5" cellpadding="10">"
 echo "Userid Info:"
 echo "<tr>"
 echo "<td>半徑</td><td>周長(zhǎng)</td>"
 echo "</tr>"
 echo "<tr>"
 echo "<td>"$radius"</td><td>"$c_length"</td>"
 echo "</tr>"
 echo "</table>"
fi

總結(jié)

以上就是使用Python的CGIHTTPServer進(jìn)行用戶交互的主要內(nèi)容,其優(yōu)點(diǎn)就是開(kāi)發(fā)使用方便,讓后端同學(xué)能更加專注于業(yè)務(wù)邏輯處理相關(guān)的內(nèi)容。不足之處可能就是不夠正規(guī),使用有風(fēng)險(xiǎn),因?yàn)槭褂玫氖羌僀GI協(xié)議交互,記得之前排查過(guò)一個(gè)bash的cgi漏洞,使用起來(lái)可能會(huì)有風(fēng)險(xiǎn),因此這種方式更適合開(kāi)發(fā)一套對(duì)內(nèi)使用的簡(jiǎn)易工具,不建議對(duì)外部用戶暴露。

相關(guān)文章

  • Python爬蟲(chóng)之Selenium實(shí)現(xiàn)窗口截圖

    Python爬蟲(chóng)之Selenium實(shí)現(xiàn)窗口截圖

    這篇文章主要介紹了Python爬蟲(chóng)之Selenium實(shí)現(xiàn)窗口截圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • pytorch 兩個(gè)GPU同時(shí)訓(xùn)練的解決方案

    pytorch 兩個(gè)GPU同時(shí)訓(xùn)練的解決方案

    這篇文章主要介紹了pytorch 兩個(gè)GPU同時(shí)訓(xùn)練的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • pandas series序列轉(zhuǎn)化為星期幾的實(shí)例

    pandas series序列轉(zhuǎn)化為星期幾的實(shí)例

    下面小編就為大家分享一篇pandas series序列轉(zhuǎn)化為星期幾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python多維數(shù)組分位數(shù)的求取方式

    python多維數(shù)組分位數(shù)的求取方式

    這篇文章主要介紹了python多維數(shù)組分位數(shù)的求取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Python 窗體(tkinter)按鈕 位置實(shí)例

    Python 窗體(tkinter)按鈕 位置實(shí)例

    今天小編就為大家分享一篇Python 窗體(tkinter)按鈕 位置實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 淺析matlab中imadjust函數(shù)

    淺析matlab中imadjust函數(shù)

    對(duì)進(jìn)行圖像的灰度變換,即調(diào)節(jié)灰度圖像的亮度或彩色圖像的顏色矩陣。這篇文章主要介紹了matlab中imadjust函數(shù),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下
    2020-02-02
  • 對(duì)于Python中RawString的理解介紹

    對(duì)于Python中RawString的理解介紹

    下面小編就為大家?guī)?lái)一篇對(duì)于Python中RawString的理解介紹。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • Python?Poetrya項(xiàng)目依賴管理安裝使用詳解

    Python?Poetrya項(xiàng)目依賴管理安裝使用詳解

    這篇文章主要為大家介紹了Python?Poetrya項(xiàng)目依賴管理安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Tensorflow與Keras自適應(yīng)使用顯存方式

    Tensorflow與Keras自適應(yīng)使用顯存方式

    這篇文章主要介紹了Tensorflow與Keras自適應(yīng)使用顯存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python的多態(tài)性實(shí)例分析

    Python的多態(tài)性實(shí)例分析

    這篇文章主要介紹了Python的多態(tài)性,以實(shí)例形式深入淺出的分析了Python在面向?qū)ο缶幊讨卸鄳B(tài)性的原理與實(shí)現(xiàn)方法,需要的朋友可以參考下
    2015-07-07

最新評(píng)論