博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python API
阅读量:4501 次
发布时间:2019-06-08

本文共 3877 字,大约阅读时间需要 12 分钟。

本章内容:

  1、Flask-restful

  2、ansible

  3、jsonrpc api

  4、zabbix api

  5、token

 

 

1、Flask-restful

  

#!/usr/bin/env python#coding:utf8from flask import Flask,requestfrom flask.ext.restful import Resource,Api,reqparse,abortimport jsonapp = Flask(__name__)api = Api(app)todos = {    '1' : {
'task':'build an API'}, '2' : {
'task':'build a web'}, '3' : {
'task':'build a app' }}# 资源不存在时的返回def abort_if_todo_doesnt_exist(todo_id): if todo_id not in todos: abort(404,message="todo {} doesn't exist".format(todo_id))# 获取传入的变量task值parser = reqparse.RequestParser()parser.add_argument('task',type=str)# 资源的查、改、删,需要传入idclass Todo(Resource): def get(self,todo_id): abort_if_todo_doesnt_exist(todo_id) return {todo_id:todos[todo_id]} def put(self,todo_id): abort_if_todo_doesnt_exist(todo_id) args = parser.parse_args() print args task = {
'task':args['task']} # request.args.get('task') todos[todo_id] = task return {todo_id:todos[todo_id]},201 def delete(self,todo_id): abort_if_todo_doesnt_exist(todo_id) del todos[todo_id] return '',204# 资源的查所有 添加,不需要传入idclass TodoList(Resource): def get(self): return todos def post(self): args = parser.parse_args() todo_id = str(int(max(todos))+1) todos[todo_id] = {
'task':args['task']} return todos[todo_id],201# 定义两个场景的访问路由api.add_resource(Todo,'/
')api.add_resource(TodoList,'/')if __name__ == '__main__': app.run(host='0.0.0.0',port=7777,debug=True)
Flask-restful.py

 

2、ansible

  

  

 

3、jsonrpc api 

  

#服务端#!/usr/bin/env python                                                                                                                                        #coding:utf-8from flask import Flask,render_template,requestfrom flask_jsonrpc import JSONRPCimport jsonapp = Flask(__name__)jsonrpc = JSONRPC(app, '/api')@jsonrpc.method('user.create')        #响应有不定参数传入的method,最常用def user(**kwargs):    data = {}    data['name'] = kwargs.get('name',None)    data['age'] = kwargs.get('age',None)    return 'I am  %s,age is %s' % (data['name'],data['age'])if __name__=='__main__':    app.debug=True    app.run(host='0.0.0.0',port=5001)
#客户端#!/bin/env python# -*- encoding: utf-8 -*-from __future__ import unicode_literalsimport jsonimport requestsheaders = {
'content-type': 'application/json'}url = "http://127.0.0.1:5001/api"data = { 'jsonrpc':'2.0', 'method': 'user.create', #请求后端不定参数的method 'id':'1', 'params':{ 'name':'wd', #无参数的method,此处为空,指定参数的method,只能保留一条参数 'age':'18' } }r = requests.post(url, headers=headers,json=data)print r.status_codeprint r.text

 

4、zabbix api

  

zabbix登录接口是咧import requestsimport jsonheaders = {
'content-type': 'application/json'}url = "http://123.59.185.96/zabbix/api_jsonrpc.php"def zabbix_login(): data = { 'jsonrpc':'2.0', 'method': 'user.login', 'id':'1', 'params':{ 'user':'admin', 'password':'zabbix' } } r = requests.post(url, headers=headers,json=data) return r.textdef tokens(): token = json.loads(zabbix_login())['result'] return token def hostlist(): data = { 'jsonrpc':'2.0', 'method':'host.get', "params": { "output": "extend", "filter": { "host": [ "Zabbix server", "Linux server" ] } }, "auth": tokens(), "id": 1 } r = requests.post(url, headers=headers,json=data) return r.textprint hostlist()

 

5、token

  

 

转载于:https://www.cnblogs.com/nopnog/p/7845227.html

你可能感兴趣的文章
Webpack4 splitChunks配置,代码分离逻辑
查看>>
Trie树详解及其应用
查看>>
第三组 通信一班 030 OSPFv2、OSPFv3综合实验
查看>>
java IO流文件的读写具体实例(转载)
查看>>
vue随笔
查看>>
一些汇编指令
查看>>
面向对象
查看>>
CallBack Function Python
查看>>
读书笔记-代码大全
查看>>
CentOS7为docker-ce配置阿里云镜像加速器
查看>>
groovy基本语法--JSON
查看>>
学习笔记2 Haspmap简述
查看>>
【AngularJs】 <br>换行显示成字符串
查看>>
Angular2 父子组件通信方式
查看>>
window.location.href问题,点击,跳转到首页
查看>>
判断一个 int 向量里是否有相同的数(1)
查看>>
数据库设置
查看>>
Python基础知识之3——运算符与表达式
查看>>
串口通信类,WPF
查看>>
UIView下使用Animation控制动画
查看>>