[PYTHON] Impressions d'utilisation de Flask pendant un mois

En 2012, j'ai fait la connaissance de Flask sur pyconjp etc. et c'était un micro framework et j'ai eu l'impression qu'il pouvait être utilisé autant que faire un petit service. Après un certain temps, il a été question de créer une API REST à l'aide de RDB, mais j'écrirai mes impressions que j'ai eu du mal et que j'ai échoué avec Flask.

  1. Classe MethodView facile à utiliser Il était vraiment facile de créer une API REST car si vous créez une classe qui hérite de la classe MethodView pour chaque point d'entrée et définissez la méthode get / post / put / delete, vous pouvez respectivement répondre aux requêtes GET / POST / PUT / DELETE.

  2. N'utilisez pas POST pour mettre à jour les ressources J'ai fait une spécification qui accepte les mises à jour par POST pour les utilisateurs d'API, mais quand j'ai commencé à l'implémenter, j'ai pensé que ce serait gênant. Cette méthode n'était pas très adaptée pour utiliser SQLAlchemy comme ORM. Si vous créez l'API REAST avec POST / PUT / DELETE / GET, les développeurs et les utilisateurs seront heureux.

  3. Flask-SQL Alchemy est difficile à utiliser. Flask-SQL Alchemy est également difficile à utiliser au-delà de l'exemple car il n'existe aucun exemple d'utilisation pouvant être utilisé comme référence. Il est plus flexible d'utiliser SQL Alchemy, et le code peut être utilisé pour d'autres traitements par lots, donc je pense qu'il vaut mieux ne pas utiliser d'extensions autant que possible.

  4. Pas beaucoup de documentation Blueprint Lorsque le code grossit après un certain temps, je pense qu'un script est trop gros et je veux utiliser un module appelé Blueprint qui divise le code, mais cela n'a pas non plus de documentation et je peux l'utiliser en lisant le code Cela prend du temps et des efforts pour que cela devienne possible. J'ai abandonné la division en utilisant Blueprint et l'ai forcée dans un seul fichier.

  5. Il est difficile de comprendre comment tester Concernant 3,4,5, je pense que cela se traduit par un manque de documentation / exemple de code en général. Flask a peu d'exemples d'utilisation, donc j'espère que la quantité d'informations dans cette section augmentera à l'avenir.

  6. Impossible de recevoir les paramètres dans la demande DELETE Je ne l'ai pas remarqué avant de commencer à l'implémenter, alors sachez que si vous adoptez une spécification qui modifie les ressources au moment de la suppression, vous aurez des problèmes plus tard. ʻAjout` Correctement, j'ai obtenu les paramètres avec request.args ["hoge"] dans la requête DELETE comme ci-dessous. % curl -X DELETE "http://localhost:9999/users/100?hoge=100"

Quant à SQLAlchemy, j'ai essayé de l'utiliser en sachant que je l'avais utilisé pendant un certain temps, donc il était peut-être hors de propos. Je l'ai écrit parce que je suis peut-être accro à faire quelque chose avec Flask + SQLAlchemy en tant que débutant.

J'ai eu beaucoup d'expérience avec Flask en 2012, donc en 2013 j'essaierai d'ajouter de nouvelles expériences avec Django, qui a plus de fonctionnalités que Flask.

J'ai hâte de travailler à nouveau avec vous cette année.


Amazon.co.jp: Technologie qui prend en charge Web-HTTP, URI, HTML et REST (WEB + DB PRESS plus): Yohei Yamamoto: Book

Session pratique PyCon JP 2012 / Outil d'implémentation et de programmation d'application Web par Flask

Recommended Posts

Impressions d'utilisation de Flask pendant un mois
Un mémorandum d'utilisation de eigen3
Éviter les pièges de l'utilisation d'un Mac (pour les utilisateurs Linux?)
Créer une application Web avec Flask ①
Créer une application Web avec Flask ③
Créer une application Web avec Flask ④
Obtenir une combinaison d'éléments à l'aide d'itertools
Ce que les utilisateurs de Java ont pensé d'utiliser le langage Go pendant une journée
[Python] Fractionner un gros fichier Flask en utilisant Blueprint
Trouvez le nombre de jours dans un mois
Un mémorandum pour toucher Python Flask avec Heroku
Conseils pour utiliser Elastic Search de manière efficace
Faisons un module pour Python en utilisant SWIG
Un mémorandum de méthode souvent utilisé dans l'apprentissage automatique utilisant scikit-learn (pour les débutants)
[Python] Implémentation du clustering à l'aide d'un modèle gaussien mixte
Créer un ensemble de données d'images à utiliser pour la formation
Lancement d'un service Web pour noter les caractères manuscrits à l'aide de DeepLearning
Découpez une partie de la chaîne à l'aide d'une tranche Python
Remarques sur l'installation de Chainer 1.5 pour GPU sous Windows
Un bref résumé du logiciel antivirus pour Linux personnel
J'ai construit une roue pour Windows à l'aide d'actions Github
[Python] J'ai essayé d'exécuter un serveur local en utilisant flask
Python: obtenir une liste de méthodes pour un objet
Lire un grand nombre de rapports sur les titres en utilisant COTOHA
Implémentation d'un réseau de neurones convolutifs utilisant uniquement Numpy
J'ai essayé d'utiliser Python (3) au lieu d'un calculateur de fonctions
Mémo de construction d'environnement d'apprentissage automatique par Python
(Pour moi) Flask_2 (liste et pour, étend, et un peu plus)
Impressions de toucher Django
Exemple d'utilisation de lambda
L'histoire de la création d'un canal VIP dans le chatwork en interne
Implémentation de VGG16 à l'aide de Keras créé sans utiliser de modèle entraîné
Créons une fonction pour le test paramétré à l'aide d'un objet frame
Recommandation de Jupyter Notebook, un environnement de codage pour les data scientists
Un mémorandum où je suis tombé sur mon HEROKU & Python personnel (Flask)
Recherche de structures stables de nanoclusters métalliques à l'aide d'algorithmes génétiques
J'ai écrit un programme de démonstration pour la transformation linéaire d'une matrice
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
J'ai essayé d'utiliser Tensorboard, un outil de visualisation pour l'apprentissage automatique
(Pour moi-même) Flask_4 (Menu déroulant, Afficher les données txt (en utilisant le tableau))
Scrapy-Redis est recommandé pour l'exploration d'un grand nombre de domaines
[Django] Une collection de scripts pratiques pour le développement
Un mémo que j'ai écrit une fonction de base en Python en utilisant la récurrence
Réponse incorrecte lors de l'utilisation de numpy.prod () pour le problème B de ABC169
Créez un environnement de développement Flask à faible coût avec Docker
[Pour les débutants] Un résumé en mots des langages de programmation populaires (version 2018)
Tourner un tableau de chaînes avec une instruction for (Python3)
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
Construction d'un environnement de développement Cortex-M pour TOPPERS utilisant Raspeye
Essayez d'utiliser [Tails], qui est le favori des hackers (?), Par démarrage USB.