最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Web程序搭建簡單的Web服務器

 更新時間:2019年07月31日 11:31:01   作者:微wx笑  
這篇文章主要介紹了Python Web程序搭建簡單的Web服務器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

上一篇講了《Python入門》Windows 7下Python Web開發(fā)環(huán)境搭建筆記,接下來講一下Python語言Web服務的具體實現(xiàn):第一個Python Web程序——簡單的Web服務器。

與其它Web后端語言不同,Python語言需要自己編寫Web服務器。

如果你使用一些現(xiàn)有的框架的話,可以省略這一步;

如果你使用Python CGI編程的話,也可以省略這一步;

用Python建立最簡單的web服務器

利用Python自帶的包可以建立簡單的web服務器。在DOS里cd到準備做服務器根目錄的路徑下,輸入命令:

python -m Web服務器模塊 [端口號,默認8000]

例如:

python -m SimpleHTTPServer 8080

然后就可以在瀏覽器中輸入

http://localhost:端口號/路徑

來訪問服務器資源。 

例如:

http://localhost:8080/index.htm(當然index.htm文件得自己創(chuàng)建)

其他機器也可以通過服務器的IP地址來訪問。

這里的“Web服務器模塊”有如下三種:

BaseHTTPServer: 提供基本的Web服務和處理器類,分別是HTTPServer和BaseHTTPRequestHandler。

SimpleHTTPServer: 包含執(zhí)行GET和HEAD請求的SimpleHTTPRequestHandler類。

CGIHTTPServer: 包含處理POST請求和執(zhí)行CGIHTTPRequestHandler類。

自定義處理程序

Google在http://chart.apis.google.com 上提供了一個將表單數(shù)據(jù)自動轉換為圖表的服務。不過,該服務很難交互, 因為你需要將數(shù)據(jù)作為查詢放到URL中。此程序為一種數(shù)據(jù)格式提供了更好的的接口: 給定一小段文本,它將調(diào)用圖表服務器來生成二維碼(QR碼),這是一種編碼文本的點格矩陣。 該圖像可被你的手機攝像頭捕獲,并解釋為一個字符串,比如URL, 這樣就免去了你在狹小的手機鍵盤上鍵入URL的麻煩。

以下為完整的程序:

import os	#Python的標準庫中的os模塊包含普遍的操作系統(tǒng)功能
import re	#引入正則表達式對象
import urllib	#用于對URL進行編解碼
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler #導入HTTP處理相關的模塊
 
 
#自定義處理程序,用于處理HTTP請求
class TestHTTPHandler(BaseHTTPRequestHandler):
	#處理GET請求
  def do_GET(self):
		#頁面輸出模板字符串
    templateStr = ''' 
<html> 
<head> 
<title>QR Link Generator</title> 
</head> 
<body> 
%s
<br> 
<br> 
<form action="/qr" name=f method="GET"><input maxLength=1024 size=70 
name=s value="" title="Text to QR Encode"><input type=submit 
value="Show QR" name=qr> 
</form>
</body> 
</html> '''
 
 
	# 將正則表達式編譯成Pattern對象
	pattern = re.compile(r'/qr\?s=([^\&]+)\&qr=Show\+QR')
	# 使用Pattern匹配文本,獲得匹配結果,無法匹配時將返回None
	match = pattern.match(self.path)
	qrImg = ''
		
	if match:
		# 使用Match獲得分組信息
		qrImg = '<img src="http://chart.apis.google.com/chart?chs=300x300&cht=qr&choe=UTF-8&chl=' + match.group(1) + '" /><br />' + urllib.unquote(match.group(1)) 
 
	self.protocal_version = 'HTTP/1.1'	#設置協(xié)議版本
	self.send_response(200)	#設置響應狀態(tài)碼
	self.send_header("Welcome", "Contect")	#設置響應頭
	self.end_headers()
	self.wfile.write(templateStr % qrImg)	#輸出響應內(nèi)容
	
#啟動服務函數(shù)
def start_server(port):
  http_server = HTTPServer(('', int(port)), TestHTTPHandler)
  http_server.serve_forever()	#設置一直監(jiān)聽并接收請求
 
os.chdir('static')	#改變工作目錄到 static 目錄
start_server(8000)	#啟動服務,監(jiān)聽8000端口

運行訪問

我這里將上面上代碼保存為:C:\Python\webserver\server1.py,使用UTF-8編碼;

打開命令行,切換到 C:\Python\webserver\ 目錄,

執(zhí)行:python server1.py

可能會彈出防火墻警告,點擊允許訪問。


在瀏覽器中訪問,查看效果,打開瀏覽器,輸入:http://localhost:8000/,結果如下圖:

在文本框中輸入一個URL,如(http://blog.csdn.net/testcs_dn),點擊Show QR,會生成一張二維碼的圖片


掃一掃這張二維碼看看吧


小結

與其它Web后端語言不同,Python語言需要自己編寫Web服務器;

但與Go語言相比,Python稍微有些難以上手。

這里只是編寫運行一個簡單的例子,看看效果找找感覺。

雖然Python的大名已經(jīng)知道很久,但最近才真正的接觸,文中有不對的地方,有更好的方法還請前輩們多多指教!

2017-12-12更新

此示例的代碼在 Eclipse+pydev 環(huán)境中打開存在縮進問題,需要 大家注意:


需要調(diào)了一下格式   就把下圖紅框中的代碼整體后移了一下:


以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Windows 下python3.8環(huán)境安裝教程圖文詳解

    Windows 下python3.8環(huán)境安裝教程圖文詳解

    這篇文章主要介紹了Windows 下python3.8環(huán)境安裝教程圖文詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Python編程中實現(xiàn)迭代器的一些技巧小結

    Python編程中實現(xiàn)迭代器的一些技巧小結

    只談迭代器的話在Python中只是一個泛指的概念,具體的可以用yield、生成器表達式、iter等多種方式來構建,這里我們整理了Python編程中實現(xiàn)迭代器的一些技巧小結:
    2016-06-06
  • 在GitHub Pages上使用Pelican搭建博客的教程

    在GitHub Pages上使用Pelican搭建博客的教程

    這篇文章主要介紹了在GitHub Pages上使用Pelican搭建博客的教程,Pelican是一個使用Python實現(xiàn)的開源博客系統(tǒng),需要的朋友可以參考下
    2015-04-04
  • Python requests timeout的設置

    Python requests timeout的設置

    這篇文章主要介紹了Python requests timeout的設置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Python讀取配置文件-ConfigParser的二次封裝方法

    Python讀取配置文件-ConfigParser的二次封裝方法

    這篇文章主要介紹了Python讀取配置文件-ConfigParser的二次封裝方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • python 切片和range()用法說明

    python 切片和range()用法說明

    首先需要明白,可迭代對象,按照正數(shù)索引(正序)是從0開始的,按照負數(shù)索引(逆序)是從-1開始的
    2013-03-03
  • Python文件操作實戰(zhàn)案例之用戶登錄

    Python文件操作實戰(zhàn)案例之用戶登錄

    以前只是用c語言文件操作打過用戶登入,學了幾天的python我感覺我又行了,下面這篇文章主要給大家介紹了關于Python文件操作實戰(zhàn)案例之用戶登錄的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • 70行Python代碼實現(xiàn)一個桌面自動翻譯工具

    70行Python代碼實現(xiàn)一個桌面自動翻譯工具

    PySimpleGUI是一款很棒的自動化輔助模塊,讓你更輕松的實現(xiàn)日常任務的自動化。本文將利用PySimpleGUI編寫一個桌面自動翻譯工具,感興趣的可以了解一下
    2022-07-07
  • Numpy ndarray 多維數(shù)組對象的使用

    Numpy ndarray 多維數(shù)組對象的使用

    這篇文章主要介紹了Numpy ndarray 多維數(shù)組對象的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • python爬蟲破解字體加密案例詳解

    python爬蟲破解字體加密案例詳解

    這篇文章主要介紹了python爬蟲破解字體加密案例詳解,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03

最新評論

海丰县| 宁陕县| 通辽市| 乌兰浩特市| 博白县| 西乌珠穆沁旗| 南部县| 溧水县| 永川市| 丹阳市| 绥宁县| 应用必备| 内江市| 南涧| 昌平区| 启东市| 慈溪市| 满城县| 和顺县| 泰来县| 鲜城| 拜城县| 永登县| 东丽区| 教育| 兴安县| 凤阳县| 山阳县| 八宿县| 阿城市| 南丹县| 临城县| 古田县| 甘谷县| 龙岩市| 柞水县| 鄂伦春自治旗| 灵台县| 长治县| 临清市| 临颍县|