第一步:写一个自定义程序

#coding=utf-8

import os #Python的标准库中的os模块包含普遍的操作系统功能
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' #设置协议版本
self.send_response(200) #设置响应状态码
self.send_header("Welcome", "Contect") #设置响应头
self.end_headers()
self.wfile.write(templateStr % qrImg) #输出响应内容

#启动服务函数
def start_server(port):
http_server = HTTPServer(('', int(port)), TestHTTPHandler)
http_server.serve_forever() #设置一直监听并接收请求

os.chdir('static') #改变工作目录到 static 目录 这里改为这个文件的所在目录
start_server(8000) #启动服务,监听8000端口

第二步: 运行访问

在终端执行上面的文件  python server1.py

在浏览器中访问,查看效果,打开浏览器,输入:http://localhost:8000/,结果如下图:

在文本框中输入一个URL,如(http://blog.csdn.net/testcs_dn),点击Show QR,会生成一张二维码的图片

来源:https://blog.csdn.net/testcs_dn/article/details/50449048

最新文章

  1. C#-WebForm-文件上传-FileUpload控件
  2. git基本技巧及进阶
  3. mysql日期加减&lt;转&gt;
  4. windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
  5. Android源码编译
  6. C++ delete operator做了什么事
  7. Restore IP Addresses
  8. this.class.getClassLoader()怎么理解?
  9. easyui源码翻译1.32--Dialog(对话框窗口)
  10. HDU -1864最大报销额(01背包)
  11. 新浪微博 2.4sdk 一闪而过
  12. 帝国cms7.0导航栏当前栏目显示不同样式
  13. Python 对Twitter中指定话题的被转载Tweet数量的频谱分析
  14. Ubuntu 安装和配置minicom
  15. Foundations of Computer Science
  16. Eclipse rap 富客户端开发总结(10) : Rap不同系统间的差异和处理方式
  17. CentOS 安装开发环境 并安装coTurn
  18. RecyclerView中设置match_parent无效;
  19. js 原生图片上传
  20. 单例模式:Qt本身就提供了专门的宏 Q_GLOBAL_STATIC 通过这个宏不但定义简单,还可以获得线程安全性

热门文章

  1. 【软件是否安装】linux下如何查看某软件是否已安装
  2. MyBatis的简单入门学习
  3. Anaconda中常用的用法
  4. (CLR via C#学习笔记)任务和并行操作
  5. React中父子组件间的通信问题
  6. https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测
  7. PHP和JAVA整合开发的三个方案(六)
  8. js 判断一个对象是否为空
  9. mac下安装apache tomcat
  10. iOS笔记之ScrollView