[Python] Créez rapidement une API avec Flask

Qu'est-ce que c'est ça

Il y a des moments où vous souhaitez créer rapidement une petite API tout en utilisant DB. Dans un tel cas, Flask est pratique. Fondamentalement, vous pouvez créer une API simplement en étoffant le code suivant.

Mise en garde

À mon avis, si vous avez un projet de taille moyenne, ajoutez flask- * plus tard, ou utilisez beaucoup de DB, vous devriez utiliser un framework tel que Django. Si vous prévoyez de passer à un autre framework plus tard, utilisez celui-ci.

code

L'API qui fournit CRD pour Model est illustrée ci-dessous. (La mise à jour sera mise en œuvre plus tard si vous en avez envie)

# coding: utf-8
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:postgres@localhost/postgres'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)


# Model
class Model(db.Model):
    __tablename__ = 'models'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True)

    def to_dict(self):
        return dict(
            id=self.id,
            name=self.name
        )

    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return '<Model {}>'.format(self.name)


@app.route("/api/v1/model/<id>", methods=['DELETE'])
def api_v1_model_id(id):
    if request.method == 'DELETE':
        d = Model.query.get(id)
        db.session.delete(d)
        db.session.commit()
        return '', 204


@app.route("/api/v1/models", methods=['GET', 'POST'])
def api_v1_models():
    if request.method == 'POST':
        name = request.json['name']
        d = Model(name)
        db.session.add(d)
        db.session.commit()
        return jsonify(d.to_dict()), 201
    if request.method == 'GET':
        ls = Model.query.all()
        ls = [l.to_dict() for l in ls]
        return jsonify(ls), 200


if __name__ == "__main__":
    db.drop_all()
    db.create_all()
    app.run(host='0.0.0.0', port=3001)

Recommended Posts

[Python] Créez rapidement une API avec Flask
Créez rapidement un serveur API avec Python + Falcon
Créez rapidement un fichier Excel avec Python #python
Créer une API avec Django
Créer un serveur local GIF animé avec Python + Flask
Créer Awaitable avec l'API Python / C
Créez rapidement une API avec Python, lambda et API Gateway à l'aide d'AWS SAM
Créez une application de mots anglais avec python
Programmation avec Python Flask
Créez une application qui devine les étudiants avec Python
Créez une application de composition d'images avec Flask + Pillow
Créer une image avec des caractères avec python (japonais)
Utiliser l'API Trello avec python
Créer un environnement avec virtualenv
Utiliser l'API Twitter avec Python
Créer un gif 3D avec python3
API avec Flask + uWSGI + Nginx
Créer un œuf avec python
API Web avec Python + Falcon
Appelez l'API avec python3.
Application Web avec Python + Flask ② ③
Utiliser l'API subsonique avec python3
Créer un répertoire avec python
Application Web avec Python + Flask ④
[LINE Messaging API] Créer un BOT de retour de perroquet avec Python
Essayez d'utiliser l'API Twitter rapidement et facilement avec Python
Prenez rapidement une chaîne de requête avec API Gateway-> Lambda (Python)
J'ai essayé de créer LINE-bot avec Python + Flask + ngrok + LINE Messaging API
[Python Kivy] Comment créer un fichier exe avec pyinstaller
Découpez une image avec python
Bases de SNS Python faites avec Flask
[AWS] Créer une API avec API Gateway + Lambda
Persistez le serveur d'API Flask avec Forever
Quine Post avec l'API Qiita (Python)
Créez un environnement virtuel avec Python!
J'ai envoyé un SMS avec Python
Créez Gmail en Python sans utiliser l'API
Créez une API en utilisant hug avec mod_wsgi
Créez une tranche d'âge avec les pandas
Implémentez rapidement l'API REST en Python
Dessinez une illustration avec Python + OpenCV
[Python] Envoyez des e-mails avec Outlook
Développement d'applications avec Docker + Python + Flask
[Python] Créer une API pour envoyer Gmail
Créez un alias pour Route53 vers CloudFront avec l'API AWS
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
[Pour Python] Créez rapidement un fichier de téléchargement vers AWS Lambda Layer
Créez une application qui recherche uniquement à l'aide de l'API de recherche personnalisée Google avec Python 3.3.1 dans Bottle
Collecter des informations sur Twitter avec Python (API Twitter)
Créer une application en classifiant avec Pygame
[Python] Création d'un environnement avec Anaconda [Mac]
Créer un décorateur de fonction Python avec Class
Créez wordcloud à partir de votre tweet avec python3
Créer une visionneuse de traitement d'image avec PySimpleGUI
Créez une image factice avec Python + PIL.