Python学习笔记-CGI编程(如何在IIS上挂Python开发的Webservice)
一、如何用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)的更多相关文章
- Python学习笔记【第十五篇】:Python网络编程三ftp案例练习--断点续传
开发一个支持多用户在线的FTP程序-------------------主要是学习思路 实现功能点 1:用户登陆验证(用户名.密码) 2:实现多用户登陆 3:实现简单的cmd命令操作 4:文件的上传( ...
- python学习笔记08-- socket编程
本节内容: 一.网络基础知识 二.socket概念及相关语法 2.1socket概念 2.2socket解释 2.3socket模块功能介绍 2.4socket粘包问题 2.5Socket多并发 一. ...
- Python学习笔记【第十四篇】:Python网络编程二黏包问题、socketserver、验证合法性
TCP/IP网络通讯粘包问题 案例:模拟执行shell命令,服务器返回相应的类容.发送指令的客户端容错率暂无考虑,按照正确的指令发送即可. 服务端代码 # -*- coding: utf- -*- # ...
- Python学习笔记【第十二篇】:Python异常处理
什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 错误类型分为两种:语法错误和业务逻辑错. 异常的类型 AttributeError 试图访问一个对象没有的树形,比如 ...
- python学习笔记(二)---编辑工具sublimeText3运行python
转载地址:https://blog.csdn.net/Maek_Tyx/article/details/76933897 1. 打开Sublime text 3 安装package controlSu ...
- 【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 ...
- 【Python学习笔记一】基础环境安装:idea+python
IDEA 安装 1.下载IDEA 官网下载地址: https://www.jetbrains.com/idea/ 2.安装的时候配置基本选择默认配置就行 参考链接:https://blog.csd ...
- Python学习笔记(15)- os\os.path 操作文件
程序1 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图: import os def countfile(path): dict1 = {} # 定义一个字典 all_files = ...
- 【目录】Python学习笔记
目录:Python学习笔记 目标:坚持每天学习,每周一篇博文 1. Python学习笔记 - day1 - 概述及安装 2.Python学习笔记 - day2 - PyCharm的基本使用 3.Pyt ...
随机推荐
- 转载:教你分分钟搞定Docker私有仓库Registry
一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法 ...
- 二、PHP基本语法 - PHP零基础快速入门
我们日常生活中,有些人使用普通话交流,有些人使用家乡话.类比到计算机的世界里,PHP 是人与计算机沟通的语言之一. 既然是语言,那就必须遵循一定的语法规则.譬如 A 向 B 表白,A 会对 B 说:& ...
- HashMap源码分析(基于jdk8)
我们知道在jdk7中HashMap的实现方式是数组+链表.而在jdk8中,实现有所变化,使用的是数组+链表+红黑树实现的. 当链表长度达到8时转化为红黑树. static final int TREE ...
- Laravel-任务调度
简介Cron 是 UNIX.SOLARIS.LINUX 下的一个十分有用的工具,通过 Cron 脚本能使计划任务定期地在系统后台自动运行.这种计划任务在 UNIX.SOLARIS.LINUX下术语为 ...
- 失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案
微信页面input获取焦点,布局上移,失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案: setTimeout(function(){ let scrollHeight = docum ...
- stm32串口接收发送数据处理
/************************************************************* Function Name : Uart1_Send_Byte* Desc ...
- Python------Mongodb操作
Python3要操作Mongodb需要下载pymongo,Linux下获取pymongo的方法也比较简单,控制台输入命令:sudo pip3 install pymongo 即可. Pymongo的文 ...
- knnsearch
转载:https://blog.csdn.net/bushixiaofan/article/details/27700299 K近邻算法是找到K个最近的邻居. IDX = knnsearch(X,Y) ...
- 「NOIp2018」 游记
作为一个蒟蒻要去考tg了,心理还是有点慌的.初赛70,心惊胆战很长时间,后来降分到68了,居然卡线了(震惊……) $Day \ 0$ 今天请假在家复习了,打了几个数据结构模板.希望明天考场能++rp啊 ...
- bzoj 1926: [Sdoi2010]粟粟的书架 (主席树+二分)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1926 题面; 1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Se ...