python 商城api编写_Python实现简单的API接口

1. get方法

import json

from urlparse import parse_qs

from wsgiref.simple_server import make_server

# 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了。

def application(environ, start_response):

# 定义文件请求的类型和当前请求成功的code

start_response('200 OK', [('Content-Type', 'text/html')])

# environ是当前请求的所有数据,包括Header和URL,body,这里只涉及到get

# 获取当前get请求的所有数据,返回是string类型

params = parse_qs(environ['QUERY_STRING'])

# 获取get中key为name的值

name = params.get('name', [''])[0]

no = params.get('no', [''])[0]

# 组成一个数组,数组中只有一个字典

dic = {'name': name, 'no': no}

return [json.dumps(dic)]

if __name__ == "__main__":

port = 5088

httpd = make_server("0.0.0.0", port, application)

print "serving http on port {0}...".format(str(port))

httpd.serve_forever()

2. post方法

import json

from wsgiref.simple_server import make_server

# 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了。

def application(environ, start_response):

# 定义文件请求的类型和当前请求成功的code

start_response('200 OK', [('Content-Type', 'application/json')])

# environ是当前请求的所有数据,包括Header和URL,body

request_body = environ["wsgi.input"].read(int(environ.get("CONTENT_LENGTH", 0)))

request_body = json.loads(request_body)

name = request_body["name"]

no = request_body["no"]

# input your method here

# for instance:

# 增删改查

dic = {'myNameIs': name, 'myNoIs': no}

return [json.dumps(dic)]

if __name__ == "__main__":

port = 6088

httpd = make_server("0.0.0.0", port, application)

print "serving http on port {0}...".format(str(port))

httpd.serve_forever()

疑问

1.怎么实现请求的路径限制?

2.怎么限制接口调用方的headers?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv (一) 学习通过OpenCV图形界面及基础

opencv 学习通过OpenCV图形界面基础 用的函数有 cv.line(), cv.circle(),cv.rectangle(), cv.ellipse(),cv.putText() 常用参数 img : 想要绘制图形的图片color: 图形的颜色, BGRthickness:厚度lineType: 线的类型, 8-connected、anti-al…

python精进之路 -- open函数

下面是python中builtins文件里对open函数的定义,我将英文按照我的理解翻译成中文,方便以后查看。 def open(file, moder, bufferingNone, encodingNone, errorsNone, newlineNone, closefdTrue): # known special case of open """  …

数据科学家编程能力需要多好_我们不需要这么多的数据科学家

数据科学家编程能力需要多好I have held the title of data scientist in two industries. I’ve interviewed for more than 30 additional data science positions. I’ve been the CTO of a data-centric startup. I’ve done many hours of data science consulting.我曾担…

基于xtrabackup GDIT方式不锁库作主从同步(主主同步同理,反向及可)

1.安装数据同步工具 注:xtrabackup 在数据恢复的时候比mysqldump要快很多,特别是大数据库的时候,但网络传输的内容要多,压缩需要占用时间。 yum install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12…

excel表格行列显示十字定位_WPS表格:Excel表格打印时,如何每页都显示标题行?...

电子表格数据很多的时候,要分很多页打印,如何每页都能显示标题行呢?以下表为例,我们在WPS2019中演示如何每页都显示前两行标题行?1.首先点亮顶部的页面布局选项卡。然后点击打印标题或表头按钮。2.在弹出的页面设置对话…

opencv(二) 图片处理

opencv 图片处理 opencv 图片像素操作 取像素点操作设置像素点取图片块分离,合并 b, g, r import numpy as np import cv2 as cvimg cv.imread(/Users/guoyinhuang/Desktop/G77.jpeg)# 获取像素值 px img[348, 120] # 0 是y, 1 是x print(px)blue img[100, 1…

【NLP】语言模型和迁移学习

10.13 Update:最近新出了一个state-of-the-art预训练模型,传送门:李入魔:【NLP】Google BERT详解​zhuanlan.zhihu.com1. 简介长期以来,词向量一直是NLP任务中的主要表征技术。随着2017年底以及2018年初的一系列技术突…

TCPIP传送协议

以下代码实现在客户端查询成绩(数据库在服务器端): 客户端: static void Main(string[] args) { string str null; while (str ! Convert.ToString(0)) { Console.WriteLine("…

sql优化技巧_使用这些查询优化技巧成为SQL向导

sql优化技巧成为SQL向导! (Become an SQL Wizard!) It turns out storing data by rows and columns is convenient in a lot of situations, so relational databases have remained a cornerstone of data management in businesses across the globe. Structured…

Day 4:集合——迭代器与List接口

Collection-迭代方法 1、toArray() 返回Object类型数据,接收也需要Object对象! Object[] toArray(); Collection c new ArrayList(); Object[] arr c.toArray(); 2、iterator() Collection的方法,返回实现Iterator接口的对象,…

oem是代工还是贴牌_代加工和贴牌加工的区别是什么

展开全部代加工就是替别人加工,贴别人的牌子。贴牌加工即商家自己不生产,而是委托其他生产企e68a8462616964757a686964616f31333365663431业生产,而品牌是自己的。拓展资料:OEM(Original Equipment Manufacture)的基本含义是定牌生…

KNN 算法--图像分类算法

KNN 算法–图像分类算法 找到最近的K个邻居,在前k个最近样本中选择最近的占比最高的类别作为预测类别。 给定测试对象,计算它与训练集中每个对象的距离。圈定距离最近的k个训练对象,作为测试对象的邻居。根据这k个紧邻对象所属的类别&#xf…

java核心技术-NIO

1、reactor(反应器)模式 使用单线程模拟多线程,提高资源利用率和程序的效率,增加系统吞吐量。下面例子比较形象的说明了什么是反应器模式: 一个老板经营一个饭店, 传统模式 - 来一个客人安排一个服务员招呼…

物种分布模型_减少物种分布建模中的空间自相关

物种分布模型Species distribution models (SDM; for review and definition see, e.g., Peterson et al., 2011) are a dominant paradigm to quantify the relationship between environmental dynamics and several manifestations of species biogeography. These statisti…

BZOJ1014: [JSOI2008]火星人prefix

BZOJ1014: [JSOI2008]火星人prefix Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。 比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号: 序号: 1 2 3 4 5 6…

redis将散裂中某个值自增_这些Redis命令你都掌握了没?

本章主要内容字符串命令、列表命令和集合命令散列命令和有序集合命令发布命令与订阅命令其他命令本章将介绍一些没有在第1章和第2章出现过的Redis命令,学习这些命令有助于读者在已有示例的基础上构建更为复杂的程序,并学会如何更好地去解决自己遇到的问题…

asp.net的MessageBox

public class MessageBox{ public enum MsgButton { /// <summary> /// 只是OK按钮 /// </summary> OK 1, /// <summary> /// 提示是否确定 /// </summary> OKCancel 2 } publ…

深入理解激活函数

为什么需要非线性激活函数&#xff1f; 说起神经网络肯定会降到神经函数&#xff0c;看了很多资料&#xff0c;也许你对激活函数这个名词会感觉很困惑&#xff0c; 它为什么叫激活函数&#xff1f;它有什么作用呢&#xff1f; 看了很多书籍上的讲解说会让神经网络变成很丰富的…

如何一键部署项目、代码自动更新

为什么80%的码农都做不了架构师&#xff1f;>>> 摘要&#xff1a;my-deploy:由nodejs写的一个自动更新工具,理论支持所有语言(php、java、c#)的项目,支持所有git仓库(bitbucket、github等)。github效果如何?如果你的后端项目放在github、bitbucket等git仓库中管理…

Kettle7.1在window启动报错

实验环境&#xff1a; window10 x64 kettle7.1 pdi-ce-7.1.0.0-12.zip 错误现象&#xff1a; a java exception has occurred 问题解决&#xff1a; 运行调试工具 data-integration\SpoonDebug.bat //调试错误的&#xff0c;根据错误明确知道为何启动不了&#xff0c;Y--Y-…