一、如何用Python开发一个简单的Webservice

利用python的cgi编程,可以传入参数将结果输出。

定义需要编码以及需要引用的模块

#conding=utf-8
#修正中文乱码
import codecs, sys
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
# CGI处理模块
import cgi, cgitb
from urllib import parse
import json
import os

定义参数

#获取访问客户端的IP地址,用以日志记录
ip=os.environ['REMOTE_ADDR']
#定义需要提交是数据
form=cgi.FieldStorage()
#传入的主要参数
query=form.getvalue('query')
#获取访问用户ID,用以日志记录
userid=form.getvalue('userid')
#定义一个CallBack函数
callback=form.getvalue('callback')

定义返回的结果

#从URL编码表解码
query=parse.unquote(query)
#定义一个返回的字典
dic={"trans_result":query,"userid":userid}
#将result的字典转成json
result=json.dumps(dic)
#CallBack函数,如果输入了callback则返回该函数
if callback is not None:
    if callback!='':
        result=callback+"("+result+")"

输出网页

#开始输出网页(不能改)
print("""Content-Type:text/html\n""")
#输出结果
print(result)

二、如何再IIS中发布Python写的Webservice

由于本人被微软套的比较深,Webservice直接用IS做发布,这也是比较适合小白的做法。

1、首先安装IIS

打开控制面板,将Web管理工具选上,万维网服务全选(不然功能不全无法发布)。

2、进入IIS,打开“处理程序映射”。

3、进去后,我们点击边上的“添加模块映射”来进行添加

4、有选择性地照抄下面的内容(注意“路径”要依据你的实际情况填写,后面的“ %s %s”必写)

5、接下面,我们点击“确定”后,会弹出一个提示框架,这里大家不要慌张,点击“是”就成!

6、最后就可以访问我们写的Webservice了

Pyhon的Webservice支持Get方式以及POST方式访问

Get方式访问可以用浏览器直接打开

http://localhost:【你的端口】/cgi-bin/【你的py名字.py】?query=传入的参数,userid=1

Python学习笔记-CGI编程(如何在IIS上挂Python开发的Webservice)的更多相关文章

  1. Python学习笔记【第十五篇】:Python网络编程三ftp案例练习--断点续传

    开发一个支持多用户在线的FTP程序-------------------主要是学习思路 实现功能点 1:用户登陆验证(用户名.密码) 2:实现多用户登陆 3:实现简单的cmd命令操作 4:文件的上传( ...

  2. python学习笔记08-- socket编程

    本节内容: 一.网络基础知识 二.socket概念及相关语法 2.1socket概念 2.2socket解释 2.3socket模块功能介绍 2.4socket粘包问题 2.5Socket多并发 一. ...

  3. Python学习笔记【第十四篇】:Python网络编程二黏包问题、socketserver、验证合法性

    TCP/IP网络通讯粘包问题 案例:模拟执行shell命令,服务器返回相应的类容.发送指令的客户端容错率暂无考虑,按照正确的指令发送即可. 服务端代码 # -*- coding: utf- -*- # ...

  4. Python学习笔记【第十二篇】:Python异常处理

    什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 错误类型分为两种:语法错误和业务逻辑错. 异常的类型 AttributeError 试图访问一个对象没有的树形,比如 ...

  5. python学习笔记(二)---编辑工具sublimeText3运行python

    转载地址:https://blog.csdn.net/Maek_Tyx/article/details/76933897 1. 打开Sublime text 3 安装package controlSu ...

  6. 【Python学习笔记】Coursera课程《Using Databases with Python》 密歇根大学 Charles Severance——Week4 Many-to-Many Relationships in SQL课堂笔记

    Coursera课程<Using Databases with Python> 密歇根大学 Week4 Many-to-Many Relationships in SQL 15.8 Man ...

  7. 【Python学习笔记一】基础环境安装:idea+python

    IDEA 安装 1.下载IDEA   官网下载地址: https://www.jetbrains.com/idea/ 2.安装的时候配置基本选择默认配置就行 参考链接:https://blog.csd ...

  8. Python学习笔记(15)- os\os.path 操作文件

    程序1 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图: import os def countfile(path): dict1 = {} # 定义一个字典 all_files = ...

  9. 【目录】Python学习笔记

    目录:Python学习笔记 目标:坚持每天学习,每周一篇博文 1. Python学习笔记 - day1 - 概述及安装 2.Python学习笔记 - day2 - PyCharm的基本使用 3.Pyt ...

随机推荐

  1. 面试中被问Spring循环依赖的三种方式!!!

    什么是循环依赖? 循环依赖其实就是循环引用,也就是两个或则两个以上的 Bean 互相持有对方,最终形成闭环.比如A依赖于B,B依赖于C,C又依赖于A.如下图: 如果在日常开发中我们用new 对象的方式 ...

  2. Javascript实现base64的加密解密

    //1.加密解密方法使用: //1.加密 var str = '124中文内容'; var base = new Base64(); var result = base.encode(str); // ...

  3. Python——汇总

    一.工具类 (1)pycharm激活.中文破解 (2)pycharm的基本设置 (3)pycharm常用包和插件的安装 二.数据类型 (1)列表.元祖.字典 操作方法 (2)迭代器操作方法 (3)生成 ...

  4. MySQL-代码自动补全工具

    一.工具名称 mycli :  具有自动完成和语法高亮的功能 二.安装 pip install mycli 三.使用方法: mycli -u root -p password 四.效果图

  5. 数论ex

    数论ex 数学学得太差了补补知识点or复习 Miller-Rabin 和 Pollard Rho Miller-Rabin 前置知识: 费马小定理 \[ a^{p-1}\equiv 1\pmod p, ...

  6. (转)Java并发包基石-AQS详解

    背景:之前在研究多线程的时候,模模糊糊知道AQS这个东西,但是对于其内部是如何实现,以及具体应用不是很理解,还自认为多线程已经学习的很到位了,贻笑大方. Java并发包基石-AQS详解Java并发包( ...

  7. JS学习笔记Day23

    一.什么是Promise (一)Promise是ES6新增的解决异步(非阻塞)中存在的问题而产生的构造函数 二.Promise中的三种状态 pending(进行中) resoved(成功后) reje ...

  8. Mac 设计师必备的设计绘图软件 推荐与下载

    Mac设计师必备的设计绘图软件,为广大设计师推荐一些Mac上实用且强大的软件,使用好的软件,事半功倍,设计出精美的作品. Mac上优秀的设计类软件非常多,绝对不止这几款软件,看看以下内容,希望对你有帮 ...

  9. DML、DDL、DCL的分别是什么

    DML.DDL.DCL的分别是什么 一直以来,分不清这三者的简称代表什么,甚至在面试中遇到可能会张冠李戴.今天特意记录一下. 一.DML(data manipulation language) 数据操 ...

  10. linux 命令之文件读取,head, tail, tailf, sed

    head 看文件的前100行head -100  filename tail/tailf查看文件的后100行tail -100  filename 或 tail -n 100  filename ta ...