Implémentez rapidement l'API REST en Python

Depuis que j'ai appris l'API lors de la session d'étude, j'ai essayé d'implémenter une API REST simple en Python. Puisque la méthode d'installation de Python est expliquée ailleurs, je vais l'omettre.

environnement

Installation du module

Avec Flask, un framework d'application web Installez Peewee de ORM.

$ pip install flask
$ pip install peewee

Importer des données

Importez les données suivantes dans la base de données.

user.tsv


#userId     userCompany  	userDiscountRate
Impression de conformité Us0ymuik Dense Forest 46
US77qmr2 Forêt dense du Japon occidental Divertissement 49
Solution de la jungle USDJ7EJ1 18
Usjx15uh Yokohama énorme dur doux 7
USQD7WPE Crédit Face Book 1
Solution mobile d'or 7 de Uswvrn3s
Solution de jeu social Us3h2d0a Benza 26
Usa4c2hm Industrie du jeu social Virtualware 7
.
.
.

Connectez-vous à la base de données avec Peewee et enregistrez les données.

import.py


# -*- coding: utf-8 -*-
import peewee

#Spécifiez la base de données
db = peewee.SqliteDatabase("data.db")

#Définir le modèle utilisateur
class User(peewee.Model):
    userId = peewee.TextField()
    userCompany = peewee.TextField()
    userDiscountRate = peewee.IntegerField()

    class Meta:
        database = db

#Création de table utilisateur
User.create_table()

#Lisez le fichier tsv ligne par ligne, divisez-le par onglets et enregistrez chacun d'eux dans la base de données
for line in open("user.tsv", "r"):
    (userId, userCompany, userDiscountRate) = tuple(line[:-1].split("\t"))
    if userDiscountRate.isdigit(): #Prend en charge les commentaires sur la première ligne.
        User.create(userId = userId,
                    userCompany = userCompany,
                    userDiscountRate = int(userDiscountRate))

Implémentation d'API

Spécifications de l'API
Fonction: obtenir des informations client
chemin: getUser /: userId
méthode: GET

api.py


# -*- coding: utf-8 -*-
from flask import Flask, jsonify, abort, make_response
import peewee
# import json

db = peewee.SqliteDatabase("data.db")

class User(peewee.Model):
    userId = peewee.TextField()
    userCompany = peewee.TextField()
    userDiscountRate = peewee.IntegerField()

    class Meta:
        database = db

api = Flask(__name__)

@api.route('/getUser/<string:userId>', methods=['GET'])
def get_user(userId):
    try:
        user = User.get(User.userId == userId)
    except User.DoesNotExist:
        abort(404)

    result = {
        "result":True,
        "data":{
            "userId":user.userId,
            "userCompany":user.userCompany,
            "userDiscountRate":user.userDiscountRate
            }
        }

    return make_response(jsonify(result))
    #Si vous ne voulez pas en faire Unicode ↓
    # return make_response(json.dumps(result, ensure_ascii=False))

@api.errorhandler(404)
def not_found(error):
    return make_response(jsonify({'error': 'Not found'}), 404)

if __name__ == '__main__':
    api.run(host='0.0.0.0', port=3000)

Vérification

$ curl -i http://0.0.0.0:3000/getUser/Usdj7ej1
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 118
Server: Werkzeug/0.11.10 Python/3.5.1
Date: Fri, 27 May 2016 06:29:57 GMT

{"data": {"userCompany": "Solution de forêt dense", "userDiscountRate": 18, "userId": "Usdj7ej1"}, "result": true}%

Recommended Posts

Implémentez rapidement l'API REST en Python
Essayez rapidement l'API Face de Microsoft en Python
Mettre en œuvre des recommandations en Python
API Evernote en Python
Implémenter sum en Python
API C en Python 3
Implémenter Traceroute dans Python 3
[WP REST API v2] Télécharger des images avec Python
Hit API de Mastodon en Python
Implémenter d'anciens chiffrements en python
Implémenter Redis Mutex en Python
Implémenter l'extension en Python
API Blender Python dans Houdini (Python 3)
Implémenter l'algorithme de Dijkstra en python
Implémenter le bot de discussion Slack en Python
Un débutant Python a essayé d'implémenter l'API REST en un jour
Obtenez des données LEAD à l'aide de l'API REST de Marketo en Python
Mettre en œuvre l'apprentissage de l'empilement en Python [Kaggle]
Implémenter la fonction power.prop.test de R en python
Obtenir l'API arXiv en Python
Implémenter le modèle Singleton en Python
Génération de spécifications et génération de code dans le développement d'API REST (édition Python)
Accéder à l'API Twitter avec Python
Livre de recettes Cloud DevOps, partie 4 - Explorez DevOps DirectMail en Python avec l'API REST
J'ai essayé d'implémenter PLSA en Python
Fonctionnement de la souris à l'aide de l'API Windows en Python
Essayez d'utiliser l'API Wunderlist en Python
Implémenter __eq__ etc. de manière générique dans la classe Python
Essayez d'utiliser l'API Kraken avec Python
Implémenter le filtre FIR en langage Python et C
Mettre en œuvre collectivement des tests d'hypothèses statistiques en Python
J'ai essayé d'implémenter PLSA dans Python 2
Tweet à l'aide de l'API Twitter en Python
Obtenez les données de l'API Google Fit en Python
[Python] API REST, résumé de la bibliothèque pratique
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
[Python] Créez rapidement une API avec Flask
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
N-Gram en Python
Programmation avec Python
Développement et déploiement de l'API REST en Python à l'aide de Falcon Web Framework
Plink en Python
Constante en Python