Notes diverses sur l'utilisation de python pour les projets

introduction

Bonjour, c'est UNIBA de MJ. Cette histoire concerne le travail avec python dans un certain projet. python est l'un des langages célèbres qui ne nécessite aucune explication particulière. Je travaille habituellement en tant qu'ingénieur front, mais j'ai commencé à toucher python vers avril, pensant que je voulais connaître le back-end récemment. Chez UNIVA, j'utilise principalement des langages tels que «javascript» qui est «node» et «ruby» qui est «rails» au travail. Comme maladie de la cuisine, j'ai choisi «python», ce que personne n'avait fait (je le regrette car j'étais à l'agonie car personne ne pouvait me soutenir). À ce moment-là, au bon moment, il y avait un projet avec un backend (je me demande vraiment si c'est un backend car je n'ai pas mis en place de serveur au final, mais ...), alors je l'ai contesté. Cela dépend de ce que j'ai vu.

Au fait, je l'écris assez désordonné. Je ne sais pas

Matière

Je vais revenir sur quel genre de projet il s'agissait.

Concernant la mise en œuvre

La chance à propos de cette implémentation était que l'implémentation côté serveur n'est pas entrée. J'ai eu beaucoup de chance de ne pas avoir à penser au développement des infrastructures en plus de DB et ainsi de suite. Ou plutôt, j'étais plutôt inquiet (personne dans l'entreprise n'exécute un serveur avec python !!!).

Regardons en arrière un par un.

Mécanisme pour télécharger automatiquement les images et les fichiers html lors de l'enregistrement des photos (surveillance de dossier + modèle)

Watchdog pour surveiller les dossiers, jinja2 pour générer html J'ai utilisé / dev /). Les deux sont des bibliothèques assez faciles à utiliser. C'est une bibliothèque bien conçue qui ne nécessite aucune explication particulière. Cela a rendu le script principal beaucoup plus facile. Quand il s'agit d'utiliser «watchdog», une partie du contenu des dossiers que vous souhaitez surveiller (comme le nombre de fichiers et le nombre de changements) doit être testé. Il n'y a pas eu de problème particulier avec ce projet.

La destination de téléchargement des données est aws

Concernant le paramétrage d'aws, j'étais en charge de la partie dont je laisse généralement le paramétrage au back-end de l'entreprise. C'est un bon souvenir que j'ai eu un peu de mal dans la partie contrat lorsque j'ai obtenu le domaine avec route53. s3 ne peut pas être «certifié de base», mais il peut être restreint par «IP», donc la période de test y a été prise en charge. Cependant, la vérification autour du partage SNS était un peu gênante, je veux donc la rendre plus facile la prochaine fois.

J'ai utilisé boto pour le téléchargement côté python. On dit qu''amazon 'l'a officiellement publié, mais honnêtement, c'était un peu pénible car la référence était difficile à lire et je ne pouvais pas bien régler le délai de communication. De plus, si le nom du bucket contient «.», Vous devez écrire quelque chose de spécial. J'ai remarqué le fait juste avant la sortie et j'ai eu un peu de sueur froide. Si vous l'associez à un domaine, vous devrez ajouter ., donc je veux que vous fassiez attention à cela du côté de la bibliothèque ...

Crypter le chemin de destination du téléchargement avec base62

C'est une mesure de précaution pour empêcher le téléchargement de photos lors de leur publication. Au début, je l'ai implémenté moi-même, mais à la fin j'ai utilisé une bibliothèque appelée basehash. La partie qui est devenue un petit problème était la coopération avec d'autres applications. En tant que système, en plus de python, une application créée par ʻopenFrameworks était en cours d'exécution, et le code QR était généré en tant que lien vers le Web, mais la valeur générée du côté C ++ est du côté python. Ne correspond pas. L'algorithme est le même, mais il ne correspond toujours pas. La cause est que la valeur de hash est trop grande pour être gérée normalement par C ++. En bref, c'était un gros problème int. Il a été dit que pythoncalculera bien autant qu'il y a de mémoire dans la spécification. Je suppose que c'est la raison pour laquelle «python» est utilisé dans des domaines de recherche tels que les universités. Après tout, la partie chiffrée a frappé python deC ++et a renvoyé le résultat. ʻSi __name__ == '__ main __':est très utile. heureux.

Où prendre soin comme d'autres applications

C'était sobre ici. .. ..

Par exemple, si la communication est perdue, une trame sera générée et un avertissement tel que "Veuillez réessayer" sera émis.

L'écran d'avertissement doit être affiché dans le thread principal (un amateur qui était initialement confus sans le savoir), mais le processus de téléchargement appelé depuis watchdog est en cours d'exécution dans le sous-thread en raison de la nature de la bibliothèque, donc entre les threads Je devais communiquer. Pour être honnête, c'était un monde inconnu de l'oncle qui joue habituellement avec html. La classe Queue a résolu ce problème. Nous avons pu utiliser join et task_done pour faciliter la coordination des arrêts et départs des processus. Non, c'est pratique.

La sortie du journal a été effectuée en utilisant logging. Pour être honnête, je veux compléter un peu plus la partie rotation des journaux.

De plus, avec ʻapplescript`, je l'ai fait démarrer automatiquement à la connexion, mais cette histoire est omise cette fois.

Impressions

Ce que j'ai pensé quand j'ai touché le langage python

Comment c'est? J'espère que vous reviendrez travailler en utilisant python.

Recommended Posts

Notes diverses sur l'utilisation de python pour les projets
vprof - J'ai essayé d'utiliser le profileur pour Python
J'ai essayé d'utiliser Kwant, un module python pour le calcul du transport quantique
[Python] J'ai essayé de remplacer le nom de la fonction par le nom de la fonction
J'ai essayé la programmation python pour la première fois.
J'ai essayé d'utiliser le module Datetime de Python
J'ai essayé python pour la première fois avec heroku
J'ai essayé d'utiliser la bibliothèque Python "pykakasi" qui peut convertir des kanji en romaji.
Une histoire qui était pratique lorsque j'ai essayé d'utiliser le module d'adresse IP python
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
J'ai essayé d'utiliser Thonny (Python / IDE)
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
J'ai essayé d'utiliser l'API checkio
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
J'ai essayé d'exécuter le référentiel de packages Python (entrepôt) qui prend en charge PyPI
J'ai essayé le mouvement Python3 qui change la direction dans le système de coordonnées
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
J'ai essayé tensorflow pour la première fois
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
Python: j'ai essayé le problème du voyageur de commerce
Remarques sur l'utilisation de python (pydev) avec eclipse
J'ai essayé le framework de test Python Tornado
J'ai essayé d'utiliser l'API BigQuery Storage
[Classification de texte] J'ai essayé d'utiliser le mécanisme d'attention pour les réseaux de neurones convolutifs.
J'ai essayé d'analyser la carte du Nouvel An par moi-même en utilisant python
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai recherché dans la bibliothèque l'utilisation de l'API Gracenote
J'ai essayé le web scraping en utilisant python et sélénium
J'ai essayé de "différencier" l'image avec Python + OpenCV
J'ai essayé la détection d'objets en utilisant Python et OpenCV
J'ai essayé de simuler "Birthday Paradox" avec Python
J'ai essayé la méthode des moindres carrés en Python
J'ai essayé d'utiliser PyCaret à la vitesse la plus rapide
J'ai essayé d'utiliser l'API Google Cloud Vision
J'ai essayé d'utiliser mecab avec python2.7, ruby2.3, php7
[Python] J'ai cherché le plus long Pokémon Shiritori
J'ai essayé de "binariser" l'image avec Python + OpenCV
J'ai essayé de lire un fichier CSV en utilisant Python
J'ai essayé Mind Meld pour la première fois
J'ai essayé d'utiliser Firebase pour le serveur de cache de Django
J'ai essayé d'utiliser le filtre d'image d'OpenCV
J'ai essayé d'utiliser la bibliothèque de programmation fonctionnelle toolz
[Python] J'ai essayé de juger l'image du membre du groupe d'idols en utilisant Keras
J'ai essayé d'utiliser paramétré
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser anytree
J'ai essayé d'utiliser aiomysql
J'ai essayé Python> autopep8
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv
J'ai essayé d'utiliser matplotlib
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot