两者之间它Web后端开发語言不一样,Python語言必须自身撰写Web网络服务器。
假如你应用一些目前的架构得话,能够省去这一步;
假如你应用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文档得自身建立)
别的设备还可以根据网络服务器的IP详细地址到访问。
这儿的“Web网络服务器控制模块”有以下三种:
BaseHTTPServer: 出示基本的Web服务和解决器类,各自是HTTPServer和BaseHTTPRequestHandler。
SimpleHTTPServer: 包括实行GET和HEAD恳求的SimpleHTTPRequestHandler类。
CGIHTTPServer: 包括解决POST恳求和实行CGIHTTPRequestHandler类。
自定解决程序
Google在上出示了一个将表格数据信息全自动变换为数据图表的服务。但是,该服务难以互动, 由于你必须将数据信息做为查寻放进URL中。此程序为一种数据信息文件格式出示了更强的的插口: 给定一小段文字,它将启用数据图表网络服务器来转化成二维码(QR码),它是一种编号文字的点格引流矩阵。 该图象可被你的手机上拍摄头捕捉,并表述为一字符串,例如URL, 那样就免除了你一直在狭窄的手机上电脑键盘上输入URL的不便。
下列为详细的程序:
[python]
importos #Python的规范库文件的os控制模块包括广泛的实际操作系统软件作用
importre #引进正则表达式表述式目标
importurllib #用以对URL开展编编解码
fromBaseHTTPServer importHTTPServer, BaseHTTPRequestHandler #导进HTTP解决有关的控制模块
#自定解决程序,用以解决HTTP恳求
classTestHTTPHandler(BaseHTTPRequestHandler):
#解决GET恳求
defdo_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 = repile(r'/qr?s=([^ ]+) qr=Show+QR')
# 应用Pattern配对文字,得到配对結果,没法配对时将回到None
match = pattern.match(self.path)
qrImg = ''
ifmatch:
# 应用Match得到排序信息内容
qrImg = ' img src="http://chart.apis.google/chart?chs=300x300 cht=qr choe=UTF-8 chl='+ match.group(1) + '" / br / '+ urllib.unquote(match.group(1))
self.protocal_version = 'HTTP/1.1'#设定协议书版本号
self.send_response(200) #设定响应情况码
self.send_header("Welcome", "Contect") #设定响应头
self.end_headers()
self.wfile.write(templateStr % qrImg) #輸出响应內容
#起动服务涵数
defstart_server(port):
http_server = HTTPServer(('', int(port)), TestHTTPHandler)
http_server.serve_forever() #设定一直监视并接受恳求
os.chdir('static') #更改工作中文件目录到 static 文件目录
start_server(8000) #起动服务,监视8000端口号
importos #Python的规范库文件的os控制模块包括广泛的实际操作系统软件作用
importre #引进正则表达式表述式目标
importurllib #用以对URL开展编编解码
fromBaseHTTPServer importHTTPServer, BaseHTTPRequestHandler #导进HTTP解决有关的控制模块
#自定解决程序,用以解决HTTP恳求
classTestHTTPHandler(BaseHTTPRequestHandler):
#解决GET恳求
defdo_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 = repile(r'/qr?s=([^ ]+) qr=Show+QR')
# 应用Pattern配对文字,得到配对結果,没法配对时将回到None
match = pattern.match(self.path)
qrImg = ''
ifmatch:
# 应用Match得到排序信息内容
qrImg = ' img src="http://chart.apis.google/chart?chs=300x300 cht=qr choe=UTF-8 chl='+ match.group(1) + '" / br / '+ urllib.unquote(match.group(1))
self.protocal_version = 'HTTP/1.1'#设定协议书版本号
self.send_response(200) #设定响应情况码
self.send_header("Welcome", "Contect") #设定响应头
self.end_headers()
self.wfile.write(templateStr % qrImg) #輸出响应內容
#起动服务涵数
defstart_server(port):
http_server = HTTPServer(('', int(port)), TestHTTPHandler)
http_server.serve_forever() #设定一直监视并接受恳求
os.chdir('static') #更改工作中文件目录到 static 文件目录
start_server(8000) #起动服务,监视8000端口号
我这儿将上边上编码储存为:C:Pythonwebserverserver1.py,应用UTF-8编号;
开启指令行,转换到 C:Pythonwebserver 文件目录,
实行:python server1.py
将会会弹出来防火安全墙警示,点一下容许浏览。
在访问器中浏览,查询实际效果,开启访问器,键入:,結果以下图:
在文字框中键入一个URL,如(http://blog.csdn/testcs_dn),点一下Show QR,会转化成一张二维码的照片
扫一扫这张二维码看一下吧
总结
两者之间它Web后端开发語言不一样,Python語言必须自身撰写Web网络服务器;
但与語言对比,Python略微一些无法入门。
这儿仅仅撰写运作一个简易的事例,看一下实际效果找找觉得。
尽管Python的名字早已了解好长时间,但近期才真实的触碰,原文中有错误的地区,有更强的方式还请老前辈们多多的赐教!
长按住方照片