Récent
- Collecter et bloquer IP addresses avec ipset et Python
- Comment annuler des tâches avec Python Asynchronous IO (AsyncIO)
- Exécuter une commande Docker dans un conteneur Cron Docker
- Création d'un Captcha avec Flask, WTForms, SQLAlchemy, SQLite
- Multiprocessing, verrouillage des fichiers, SQLite et tests
- Envoi de messages à Slack à l'aide de chat_postMessage
Les plus consultés
- Flask RESTful API validation des paramètres de la requête avec les schémas Marshmallow
- Utiliser UUIDs au lieu de Integer Autoincrement Primary Keys avec SQLAlchemy et MariaDb
- Utilisation des Python's pyOpenSSL pour vérifier les certificats SSL téléchargés d'un hôte
- Connexion à un service sur un hôte Docker à partir d'un conteneur Docker
- Utiliser PyInstaller et Cython pour créer un exécutable Python
- SQLAlchemy : Utilisation de Cascade Deletes pour supprimer des objets connexes
Étiquettes
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2Log fileLoggingMachine LearningMariaDBMessage brokerMultilanguageMultiprocessingPentestingPikaPostfixProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisSecurity testingSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWerkzeugWheelsWTFormsCollecter et bloquer IP addresses avec ipset et Python
21 mai 2023 0
Peter
Si vous avez un serveur connecté à l'internet, vous avez probablement vu ceci dans vos fichiers journaux : beaucoup de requêtes externes illégales essayant d'accéder à vos services.
Je maintiens un serveur Debian , et j'utilise Fail2Ban pour la prévention des intrusions. Pratique standard, installer, configurer et oublier. Comme le serveur était mis hors service à certaines heures, j'ai décidé d'y ...
Comment annuler des tâches avec Python Asynchronous IO (AsyncIO)
2 mai 2023 0
Peter
Dans le cadre d'un projet, j'ai utilisé AIOHTTP pour vérifier les réponses de plusieurs sites web distants, URLs. Les URL proviennent d'une liste. Cette liste peut contenir des doublons.
Tout allait bien jusqu'à ce que je remarque que certaines réponses avaient également un code de statut : HTTP-429 'Too Many Requests'. Quelle qu'en soit la raison, surcharge, sécurité, nous voulons nous comporter ...
Exécuter une commande Docker dans un conteneur Cron Docker
18 avril 2023 0
Peter
Lorsque vous utilisez Docker, votre application se compose généralement de plusieurs conteneurs Docker . Souvent, vous souhaitez exécuter des scripts à l'intérieur de ces conteneurs à certains moments, par exemple, toutes les cinq minutes, une fois par heure, une fois par jour.
C'est là que le planificateur de tâches Cron entre en jeu, et il existe plusieurs options pour y parvenir. Dans cet article, ...
Création d'un Captcha avec Flask, WTForms, SQLAlchemy, SQLite
10 avril 2023
Peter
Dans le passé, j'ai écrit du code pour un Captcha (texte seul) pour un site web Flask . Il s'agit d'une mise à jour. Ici, j'utilise un paquet Pypi pour générer l'image. De plus, j'ai ajouté un bouton de rafraîchissement de l'image Captcha .Vous pouvez essayer le code ci-dessous, il s'agit d'un formulaire d'inscription à une lettre d'information. Bien qu'il s'agisse d'une solution Captcha pour ...
Multiprocessing, verrouillage des fichiers, SQLite et tests
30 mars 2023 0
Peter
Je travaillais sur un projet avec SQLAlchemy et PostgreSQL. Pour quelques tables, je voulais limiter le nombre de lignes par user, et je l'ai fait en ajoutant une fonction de contrôle et un déclencheur PostgreSQL .
Lors des tests manuels, tout semblait fonctionner correctement, mais que se passerait-il si un user démarrait plusieurs processus et ajoutait des lignes exactement au même moment ...
Envoi de messages à Slack à l'aide de chat_postMessage
23 mars 2023 0
Peter
Dans le cadre d'un projet, j'envoyais déjà des messages par courrier électronique, mais je voulais aussi envoyer des messages sur Slack. Bien sûr, nous utilisons le SDK Slack Python .
La documentation se trouve sur la page : Python Slack SDK - Web Client. Dans ce billet, je crée une classe SlackAPI simple avec sa propre classe d'exception SlackError.
Créer ...
PostgreSQL backup avec Docker SDK pour Python
9 mars 2023 0
Peter
Ceci est un court billet sur la sauvegarde d'une base de données Dockerized PostgreSQL . Pour accéder à la base de données, nous lançons généralement un script Bash sur l'hôte, avec des commandes comme :
docker exec -t <container> bash -c '<command>'
Dans ce billet, nous remplaçons notre script Bash par un script Python . Pourquoi ? Parce que nous connaissons Python et que la programmation ...
Empêcher l'envoi de messages en double à un système distant
21 février 2023 0
Peter
Les applications doivent souvent envoyer des messages à un système distant. Dans un monde parfait, nous n'avons à nous occuper que du flux heureux : il n'y a pas de mauvaises choses qui se produisent, comme des exceptions ou des erreurs.
Malheureusement, le monde n'est pas parfait. Outre les erreurs de programmation, les connexions peuvent échouer, les systèmes de ...
Politician Translator avec Spacy et Negate
11 janvier 2023 0
Peter
Ceci est un court message. Nous entendons tout le temps ces politiciens parler mais la plupart du temps, ils veulent dire le contraire. Par exemple, si un politicien dit qu'il va baisser les impôts, les impôts vont augmenter. Si un politicien dit qu'il n'a pas eu de relation avec cette femme, alors ... Etc.
J'ai donc pensé, pourquoi ne pas faire un Politician Translator en Python ? Dans ce post, ...
Du code monolithique aux services avec RabbitMQ et Pika
8 janvier 2023 0
Peter
Ce post concerne l'utilisation de RabbitMQ dans votre application Python . Si vous utilisez déjà Rabbit, vous ne trouverez probablement rien d'utile dans cet article. Pourquoi un article sur RabbitMQ ? Parce que j'ai une application qui l'utilise depuis un an, et j'ai pensé à partager mes expériences.
Dans ce billet, nous transformons une application monolithique ...
Application Flask montrant stdout et stderr d'un travail en arrière-plan
19 décembre 2022 0
Peter
Dans le cadre d'un projet Flask , j'avais besoin d'exécuter un travail en arrière-plan, plus précisément une commande s'exécutant dans un terminal (Linux), et d'afficher ses résultats, stdout et sterr, en temps réel dans une fenêtre de navigateur. Vous pouvez trouver quelques solutions sur Internet et celle-ci en est une autre. J'utilise également du code que j'ai trouvé sur le web, voir les liens ...
Agrégation et journaux de conteneurs Q4_6513_TNEMECALPER_4 Docker utilisant le SDK Docker pour Python
11 décembre 2022 0
Peter
Le problème : Vous avez finalement une application Docker composée de nombreux (micro) services (conteneurs) et vous voulez surveiller tous ces conteneurs pour détecter les erreurs.
Les services sont pour la plupart des scripts Python qui utilisent le module de journalisation standard Python et impriment des messages vers stdout (et stderr) :
... DEBUG ...
... INFO ...
... ERROR ...
En ...
journalisation des applications Python avec Docker
5 décembre 2022 0
Peter
Lorsque vous développez une application logicielle, la première chose que vous allez mettre en place est probablement la journalisation. D'abord uniquement vers la console, mais bientôt vous ajouterez des fichiers journaux.
Il y a quelques années, j'ai commencé à utiliser Docker pour le développement et la production. Je n'ai pas fait beaucoup de changements lors du passage à la Docker. Les fichiers ...
LogLineFollower : Suivre les lignes d'un fichier journal en expansion
9 septembre 2022 0
Peter
Je cherchais un moyen de traiter les lignes d'un fichier journal pendant sa croissance. J'ai trouvé quelques snippets et paquets sur Internet mais pas exactement ce que je voulais. C'est pourquoi j'ai décidé d'écrire mon propre programme.
Après avoir codé une première version, j'ai cherché à nouveau et j'ai trouvé plusieurs autres paquets. Mais, en regardant la description, le code et les problèmes, ...
Connexion à un service sur un hôte Docker à partir d'un conteneur Docker
11 août 2022 0
Peter
Si vous avez un problème avec Docker et que vous effectuez une recherche sur Internet, vous tomberez presque certainement sur la question suivante : Comment puis-je me connecter à localhost ? Ce que les gens veulent dire, c'est : Comment puis-je me connecter à un service sur l'hôte Docker à partir d'un conteneur Docker . Lorsque j'ai commencé à utiliser Docker , j'ai également eu du mal à résoudre ...
AIOHTTP : Détection du timeout DNS avec des serveurs de noms personnalisés
27 juillet 2022 0
Peter
Lorsque vous utilisez AIOHTTP pour extraire des données d'une page Web sur Internet, vous utilisez probablement un délai d'attente pour limiter le temps d'attente maximum.
Si vous utilisez un nom de domaine, l'adresse IP doit être résolue. Si vous n'utilisez pas un résolveur séparé, vous dépendez du système d'exploitation sous-jacent. Toute ...
Flask Message Flashing : Remplacer Bootstrap Alerts par Toasts
25 juillet 2022 0
Peter
Lorsque vous avez une application Flask avec Bootstrap, vous utilisez probablement Bootstrap Alerts pour afficher flashed messages. Je les utilise, et ils fonctionnent, mais je ne suis pas vraiment satisfait. Par défaut, elles ne sont pas jolies et, dans la plupart des cas, elles prennent beaucoup de place sur l'écran. Et voulez-vous vraiment que des notifications comme "vous êtes connecté" soient ...
SQLAlchemy : Utilisation de Cascade Deletes pour supprimer des objets connexes
16 juillet 2022 1
Peter
Bien que la documentation de SQLAlchemy ORM soit très bonne, elle est parfois confuse et manque d'exemples clairs, mais c'est peut-être juste moi. À propos des Cascade Delete, je trouve le texte suivant de la documentation de SQLAlchemy époustouflant :
La valeur par défaut de l'option de relation 'cascade' est 'save-update, merge'. L'alternative typique pour ce paramètre est soit tout, soit ...
SQLAlchemy PostgreSQL : Ajouter un deuxième BigInteger Primary Key
28 mai 2022 0
Peter
Supposons que nous utilisions UUID Primary Keys dans notre projet. Cela fonctionne bien, mais il y a aussi quelques tables avec des millions d'enregistrements. Nous savons que les opérations SELECT et INSERT avec des tables UUID basées sur Primary Key peuvent être beaucoup plus lentes par rapport aux tables Integer basées sur Primary Key . Ce que nous voulons, c'est que ces énormes tables ...
Redirection sur une exception dans Flask en utilisant un decorator
7 mai 2022 0
Peter
Dans une application Flask , vous implémentez généralement des gestionnaires d'exceptions globaux. Dans de nombreux cas, cela est suffisant. Mais que faire si vous voulez plus de contrôle ?
Dans un projet, je me connectais à une API et je voulais qu'un certain nombre de routes utilisant la API redirige vers une page de démarrage en cas d'erreur de la API , avec un message approprié bien sûr. ...