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 ...
随机推荐
- DRF限制访问频次
官方文档:https://www.django-rest-framework.org/api-guide/throttling/ 1.什么场景下需要限制访问频次呢? 1)防爬虫:爬虫可能会在短时间内大 ...
- python上下文管理
一.python上下文介绍: python中的上下文,指的就是代码所执行的环境状态,或者运行的场景 python上下文管理器规定了某个对象的使用范围,当进入或者离开了使用范围,会有相应的操作,多用于资 ...
- 分布式存储ceph——(5)ceph osd故障硬盘更换
正常状态:
- 菜鸟学IT之四则运算升级版
菜鸟学IT之四则运算升级版 本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 团队代码github远程仓库的 ...
- iOS App上架流程(2016详细版)来源DeveloperLY
一.前言: 作为一名iOSer,把开发出来的App上传到App Store是必要的.下面就来详细讲解一下具体流程步骤. 二.准备: 一个已付费的开发者账号(账号类型分为个人(Individual).公 ...
- Python百题计划
一.基础篇 想要像类似执行shell脚本一样执行Python脚本,需要在py文件开头加上什么?KEY:#!/usr/bin/env python Python解释器在加载 .py 文件中的代码时,会对 ...
- 使用sqlserver 链接远程服务器进行查询
--创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogi ...
- Virtual DOM 系列二:核心API
为了更好的研究Virtual DOM,我选择了snabbdom来学习.相比Vue来说,snabbdom对于研究虚拟DOM更好,因为它里面没有其他干扰的东西,而且源码也比较少,因此研究起来更方便. 1. ...
- Java的常量和变量
一.标识符 如类名,数字不能作为标识符的首字母(以字母或者下划线或者$开头且不能有空格) 注意和Python的区别,Python中标识符由字母.下划线和数字组成,且数字不能开头,也是严格区分大小写(但 ...
- 二叉树最近公共祖先(LeetCode)
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖先且 x 的深 ...