专栏首页python3Python实现简单的API

Python实现简单的API

get方法

代码实现

# coding:utf-8

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()

请求实例

post方法

代码实现

# coding:utf-8

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? 以上待研究,未完待续。。。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python实现简单的API接口

    py3study
  • PowerShell 学习笔记(3)

    例子2、获取AD里所有计算机的bios信息 -ExpandProperty <string>     指定要选择的属性,并指示应当尝试展开该属性。属性名中允...

    py3study
  • Windows下用Python实现Web

    今天想用python实现一个简单的WebService应用,从网上找了很多资料,却不能顺利配置工作环境,不过经过半天的努力,还是顺利解决各种Bug,记录...

    py3study
  • Python实现简单的API接口

    py3study
  • Redis哨兵(Sentinel)模式

    主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更...

    秃头哥编程
  • dotnet 三句命令行创建运行一个 web 服务程序

    现在 dotnet 的服务创建十分具有效率,本文的前提要求是电脑上面已经安装了 dotnet 程序,接下来就是三句命令行的事情

    林德熙
  • PyQt5编写跨平台的CDN上传工具桌面版

    之前总有人找到我们组小伙伴让手动上传文件到CDN上,我们小伙伴cq一怒之下写了一个基于TK的自助GUI工具,我看了之后觉得这个还挺有意思,就用PyQt5重写了一...

    追马
  • 如何访问IPV6?很简单,几个命令行即可。

    我因为不在大陆,所以平时是可以正常访问谷歌的,但是一旦我连接这个ipv6之后,访问谷歌就会变得抽风,一下能上,一下又访问不了。所以如果不想连接ipv6的话,可以...

    marsggbo
  • 温故而知新:类索引器

    类索引器  1 using System;  2 using System.Collections.Generic;  3  4 namespace Pro...

    菩提树下的杨过
  • Hadoop学习5--配置本地开发环境(Windows+Eclipse)

    一、导入hadoop插件到eclipse 插件名称:hadoop-eclipse-plugin-2.7.0.jar 我是从网上下载的,还可以自己编译。 放到ec...

    小端

扫码关注云+社区

领取腾讯云代金券