python+flask实现API的方法

本文为大家分享了python+flask实现API的具体方法,供大家参考,具体内容如下

Flask 框架

#-*-coding:utf-8-*-

#pip install flask
#pip install flask-restful

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
  return "hello world!"

if __name__ == '__main__':
  app.run(debug=True)

pycharm运行该程序后,在浏览器输入http://127.0.0.1:5000/,即可看到一个网页:

Flask + flask_restful创建一个简单的应用程序:

from flask import Flask
from flask_restful import Resource,Api

app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
  def get(self):
    return {"hello":"world"}

api.add_resource(HelloWorld,'/')

if __name__ == '__main__':
  app.run(debug=True)

python+flask创建API: 获取post请求传递的json数据

from flask import Flask,abort,jsonify,make_response,request

app = Flask(__name__)

@app.route('/analyze/' ,methods=['POST'])
def call_wiscan_analyze():
  if not request.json or not 'path' in request.json:
     abort(400)
  path = request.json['path']

if __name__ == '__main__':
  app.run(port='50055',debug=True)

请求:

from requests import post

if __name__ == '__main__':
  path='"F:/nb_org_data/86574FG01/2013/1029/0008/86574FG01201310290008.img"'
  ret = post('http://localhost:50055/analyze/',json={'path':path})
  print(ret.text)

将API封装为win32服务

import win32serviceutil
import win32service
import win32event
import win32timezone
from flask import Flask,abort,jsonify,make_response,request
import threading

app = Flask(__name__)
_ONE_DAY_IN_SECONDS = 60 * 60 * 24

@app.route('/analyze/' ,methods=['POST'])
def call_wiscan_analyze():
  if not request.json or not 'path' in request.json:
     abort(400)
  path = request.json['path']

def thread_target():
  app.run(port='50055', debug=True)

class GRPCWin32Client(win32serviceutil.ServiceFramework):
  _svc_name_ = 'GRPCWin32Client'
  _svc_display_name_ = 'Nuctech GRPC Client'
  _svc_description_ = 'wiscan grpc client'

  def __init__(self, args):
    win32serviceutil.ServiceFramework.__init__(self, args)
    self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
    #self.logger = self._getLogger()
    self.run = True

  def SvcDoRun(self):
    th = threading.Thread(target=thread_target)
    th.start()
    try:
      while self.run:
        time.sleep(_ONE_DAY_IN_SECONDS)

    except KeyboardInterrupt:
      pass

    pass

  def SvcStop(self):
    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
    win32event.SetEvent(self.hWaitStop)
    self.run = False

if __name__ == '__main__':
  import sys
  import servicemanager
  if len(sys.argv) == 1:
    try:
      evtsrc_dll = os.path.abspath(servicemanager.__file__)
      servicemanager.PrepareToHostSingle(GRPCWin32Client)
      servicemanager.Initialize('GRPCWin32Client', evtsrc_dll)
      servicemanager.StartServiceCtrlDispatcher()
    except win32service.error as details:
      import winerror
      if details == winerror.ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:
        win32serviceutil.usage()
  else:
    win32serviceutil.HandleCommandLine(GRPCWin32Client)

注意:

启动一个线程运行app.run(),否则安装完win32服务,启动服务后,无法停止服务,因为app内部循环没有结束!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python和flask中返回JSON数据的方法

    在python中可以使用json将数据格式化为JSON格式: 1.将字典转换成JSON数据格式: s=['张三','年龄','姓名'] t={} t['data']=s return json.dumps(t,ensure_ascii=False) 2.将列表转换成JSON数据格式: s=['张三','年龄','姓名'] return json.dumps(s,ensure_ascii=False) 使用json转换的在前端显示的数据为JSON字符串. 使用flask的jsonify转换后,在前

  • python实现通过flask和前端进行数据收发

    python代码: # -*- coding: utf-8 -*- from flask import Flask,jsonify,render_template,request import json app = Flask(__name__)#实例化app对象 testInfo = {} num=10 @app.route('/test_post/nn',methods=['GET','POST'])#路由 def test_post(): global num '''receive dat

  • python flask框架实现传数据到js的方法分析

    本文实例讲述了python flask框架实现传数据到js的方法.分享给大家供大家参考,具体如下: 首先要清楚后台和前端交互所采用的数据格式. 一般选JSON,因为和js完美贴合. 后台返回的数据进行序列化 在/homepageRecommend 路由的 view方法中返回序列化数据 dict = {"a":1, "b":2}<br data-filtered="filtered"> import json json.dumps(di

  • python使用flask与js进行前后台交互的例子

    flask与js进行前后台交互代码如下,后台给前端发数据: python部分: # -*- coding: utf-8 -*- from flask import Flask,jsonify,render_template import json app = Flask(__name__)#实例化app对象 testInfo = {} @app.route('/test_post/nn',methods=['GET','POST'])#路由 def test_post(): testInfo['

  • python+flask实现API的方法

    本文为大家分享了python+flask实现API的具体方法,供大家参考,具体内容如下 Flask 框架 #-*-coding:utf-8-*- #pip install flask #pip install flask-restful from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "hello world!" if __name__ == '__main__': ap

  • Python 调用 zabbix api的方法示例

    前提准备: 1.使用python requests模块 2.了解json 3.zabbix api的具体调用建议先浏览一下官网 先上代码: import requests,json # #url一定要正确,IP地址换成自己zabbix服务器的 zbx_url = "http://192.168.60.130:3080/zabbix/api_jsonrpc.php" #在post请求头部必须要有 'Content-Type': 'application/json-rpc' headers

  • Python Flask异步发送邮件实现方法解析

    第一步,修改工厂函数,配置邮件参数 from flask import Flask from config import Config from flask_sqlalchemy import SQLAlchemy from flask_mail import Mail db = SQLAlchemy() mail = Mail() def create_app(): app = Flask(__name__) app.config.from_object(Config) db.init_app

  • 用 Django 开发一个 Python Web API的方法步骤

    Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架.它是Python API开发中最受欢迎的名称之一,自2005年成立以来,其知名度迅速提升. Django由Django软件基金会(Django Software Foundation)维护,并获得了社区的大力支持,在全球拥有11,600多个成员.在Stack Overflow上,Django大约有191,000个带标签的问题.Spotify,YouTube和Instagram等网站都依

  • 详解Python Flask API 示例演示(附cookies和session)

    目录 一.概述 二.常用函数讲解 1)Flask() 函数 2)route() 函数 3)jsonify() 函数 4)render_template() 函数 5)redirect() 函数 6)url_for() 函数 7)before_request() 函数 8)after_request() 函数 9)abort() 函数 10)send_file() 函数 三.常用对象讲解 1)request 对象 2)session 对象 四.Flask 中的 cookies 与 session

  • python爬虫之百度API调用方法

    调用百度API获取经纬度信息. import requests import json address = input('请输入地点:') par = {'address': address, 'key': 'cb649a25c1f81c1451adbeca73623251'} url = 'http://restapi.amap.com/v3/geocode/geo' res = requests.get(url, par) json_data = json.loads(res.text) g

  • 使用Python & Flask 实现RESTful Web API的实例

    环境安装: sudo pip install flask Flask 是一个Python的微服务的框架,基于Werkzeug, 一个 WSGI 类库. Flask 优点: Written in Python (that can be an advantage); Simple to use; Flexible; Multiple good deployment options; RESTful request dispatching RESOURCES 一个响应 /articles 和 /art

  • python flask中静态文件的管理方法

    Web应用中大多会提供静态文件服务以便给用户更好的访问体验. 静态文件主要包含CSS样式文件,js脚本,图片和字体等. Flask也支持静态文件访问的,默认情况下只需在项目根目录下,创建名为static的目录,在应用中使用'/static'开头的路径就可以访问了.但是为了获得更好的处理能力,推荐使用Nginx 或者其他服务器管理静态文件. 不要直接在模板中写死静态文件路径,应该使用url_for生成路径. 例如: url_for('static',filename='style.css') 生成

  • python直接获取API传递回来的参数方法

    之前用python调用API存JSON的时候试用了很多方法,现在调用API直接获取参数的时候也是查了好多例子(毕竟我是一个初学者). 结果让我发现了,原来只用把之前写的方法中去掉传参即可. 白白浪费了一个多小时的时间. 下面就是获取API传递回来的参数方法: #coding=utf-8 import httplib import json import urllib try: conn = httplib.HTTPConnection("127.0.0.1",8090) except

  • python flask解析json数据不完整的解决方法

    当使用Python的flask框架来开发网站后台,解析前端Post来的数据,通常都会使用request.form来获取前端传过来的数据,但是如果传过来的数据比较复杂,其中右array,而且array的元素不是单个的数字或者字符串的时候,就会出现解析不到数据的情况,比如使用下面的js代码向python flask传递数据 $.ajax({ "url":"/test", "method":"post", "data&qu

随机推荐