Récent
- Graphique de séries temporelles avec Flask, Bootstrap et Chart.js
- Utiliser IPv6 avec Microk8s
- Utilisation de Ingress pour accéder à RabbitMQ sur un cluster Microk8s
- Galerie vidéo simple avec Flask, Jinja, Bootstrap et JQuery
- Planification de base des tâches avec APScheduler
- Un commutateur de base de données avec HAProxy et HAProxy Runtime API
Les plus consultés
- Utiliser PyInstaller et Cython pour créer un exécutable Python
- Réduire les temps de réponse d'un Flask SQLAlchemy site web
- 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 UUIDs au lieu de Integer Autoincrement Primary Keys avec SQLAlchemy et MariaDb
- SQLAlchemy : Utilisation de Cascade Deletes pour supprimer des objets connexes
Étiquettes
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDatabaseDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker SwarmDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2KubernetesLog fileLoggingMachine LearningMariaDBMessage brokerMicrok8sMultilanguageMultiprocessingNetworkingPentestingPikaPostfixPostgreSQLProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisrqliteSchedulingScrapingSecuritySecurity testingSeleniumSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWeb automationWerkzeugWheelsWTFormsYouTubeGraphique de séries temporelles avec Flask, Bootstrap et Chart.js
16 décembre 2024 0
Peter
Nous avons déjà une application construite avec Flask et Bootstrap et nous voulons ajouter quelques graphiques. Dans ce court billet, nous créons une page web unique avec un graphique de série temporelle en utilisant Flask, Bootstrap et Chart.js. Cette page est une page de test que nous pouvons coller et adapter à notre application. Comme toujours, je le fais sur Ubuntu 22.04 Desktop. Vue ...
Utiliser IPv6 avec Microk8s
3 décembre 2024 0
Peter
Pour une partie de mon application qui consiste en plusieurs projets Docker-Compose, j'avais besoin d'accéder à des services externes exclusivement IPv6. Dans les posts précédents, j'ai écrit que j'avais déjà déplacé une partie de mon application de Docker vers Microk8s (Kubernetes). C'est la partie qui nécessite l'accès aux services IPv6 externes. L'application Docker communique avec l'application ...
Utilisation de Ingress pour accéder à RabbitMQ sur un cluster Microk8s
20 novembre 2024 0
Peter
Il y a quelque temps, j'ai publié un billet sur le déplacement d'une partie d'une application contenant RabbitMQ fonctionnant sur Docker Swarm vers Microk8s. Nous avons utilisé NodePort pour accéder au cluster Kubernetes RabbitMQ sur l'hôte. Récemment, j'ai décidé d'utiliser le pod Microk8s Ingress Controller pour accéder à RabbitMQ.Dans ce billet, nous supposons que le pod RabbitMQ ...
Galerie vidéo simple avec Flask, Jinja, Bootstrap et JQuery
28 octobre 2024 0
Peter
Nous disposons d'un certain nombre de caméras qui génèrent de courtes séquences lorsque quelque chose se déplace devant la caméra. Tous les clips, les vidéos, aboutissent sur un seul système. Nous utilisons des programmes standard pour visionner les vidéos. Mais nous voulons maintenant partager ces vidéos avec d'autres personnes sur notre réseau local, et nous ne voulons pas copier les fichiers vidéo. ...
Planification de base des tâches avec APScheduler
19 octobre 2024 0
Peter
Vous avez créé un programme Python , par exemple pour sauvegarder une base de données, et vous voulez maintenant l'exécuter toutes les heures, ou tous les jours. Il existe de nombreuses solutions, nous utilisons ici APScheduler, 'Advanced Python Scheduler', un planificateur de tâches qui répond à de nombreuses exigences. Pour notre tâche, ce paquet peut sembler excessif, mais utilisons-le ici et ...
Un commutateur de base de données avec HAProxy et HAProxy Runtime API
13 août 2024 0
Peter
Un de mes projets nécessitait une base de données à haute disponibilité (n'est-ce pas ce que nous voulons tous ...), ce qui signifie une réplication (asynchrone) et une configuration multi-nœuds. Plusieurs solutions existent, j'en parlerai dans un autre article. Dans ces scénarios, nous avons plusieurs répliques de la base de données principale, et lorsqu'un problème survient, nous passons d'une base ...
Docker Swarm rolling updates
7 juillet 2024 0
Peter
Il y a quelque temps, j'ai écrit qu'il serait préférable de passer à une variante Kubernetes et maintenant ce billet concerne Docker Swarm. Oui, j'utilise encore Docker Swarm parce que j'ai un projet qui l'utilise. J'ai récemment déplacé le développement de Docker vers Docker Swarm, principalement parce qu'avec Docker Swarm vous apprenez les bases de l'orchestration de conteneurs, alors pourquoi ...
Masquer les clés primaires de la base de données UUID de votre application web
29 mars 2024 0
Peter
Lorsque vous créez une application web, vous devez faire très attention à ne pas exposer trop d'informations. Si vous utilisez (auto-incrément) Integer IDs dans votre base de données, vous en exposez probablement déjà trop. Quelques exemples. Une Integer user_id permet de deviner facilement le nombre de nouveaux enregistrements que vous recevez chaque jour. Un Integer order_id permet de ...
Don't Repeat Yourself (DRY) avec Jinja2
20 février 2024 0
Peter
J'ai fait quelques essais avec Jinja2, j'ai créé une petite application Flask , et je me suis dit pourquoi ne pas la partager. Ce que je voulais faire, c'était mettre tous les noms de pages dans un seul fichier modèle. Comme pour Python, lorsque vous écrivez beaucoup de code, vous devez faire attention à ne pas vous répéter avec Jinja2. Très vite, vous vous retrouvez avec de nombreux fichiers ...
SQLAlchemy, PostgreSQL, nombre maximal de lignes par user
5 février 2024 0
Peter
Vous avez une application multi-user utilisant SQLAlchemy et PostgreSQL et vous voulez limiter le nombre de lignes par user d'une certaine table. Par exemple, chaque user peut avoir un maximum de cinq messages. Vous avez besoin d'une opération comme : Verrouiller la table Compter le nombre de messages du user Si le nombre est inférieur à cinq : Ajouter un nouveau message ...
Afficher les valeurs des filtres dynamiques SQLAlchemy
18 janvier 2024 0
Peter
Lorsque j'utilise SQLAlchemy, j'utilise souvent des filtres dynamiques dans mes requêtes. Cela signifie que je commence par une liste avec certaines conditions et que j'ajoute d'autres conditions qui dépendent d'autres variables.Voici une requête avec un filtre statique : # query with static filter product_colors = ['white'] stmt = sa.select(Product).\ where(sa.and( Product.category.in_(my_categ ...
Transfert de données sécurisé grâce au cryptage à Public Key et à pyNaCl
2 décembre 2023 0
Peter
Il s'agit d'un court billet sur le transfert de données en toute sécurité entre deux personnes. Pour cela, nous utilisons le paquet Python pyNaCl pour générer des clés privées et publiques et pour crypter et décrypter les données. J'ai également ajouté le paquet Python keyring pour stocker les private_key et public_key. Ce ...
rqlite : une alternative à haute disponibilité et dist distribuée SQLite
17 octobre 2023 1
Peter
Dans un projet, j'utilise une base de données SQLite . Les données ne sont pas critiques, elles peuvent être rechargées à tout moment. Néanmoins, je ne veux pas qu'une partie de l'application ne réponde plus lorsque la base de données SQLite est temporairement indisponible. Je cherchais une base de données rapide, plus ou moins tolérante aux pannes, et également dist distribuée, afin de pouvoir ...
Dois-je migrer mon Docker Swarm vers Kubernetes ?
15 septembre 2023 0
Peter
Quand on lit des articles sur internet disant que Docker Swarm est mort, on a peur. J'ai un Docker Swarm qui fonctionne et je l'aime bien, c'est facile quand on utilise déjà Docker. Quelles sont les alternatives ? Nous avons toujours lu qu'il n'y avait qu'une seule chose à faire, c'est de migrer vers Kubernetes et d'oublier tout le reste. J'étais à mi-chemin de la migration de Docker à ...
Obtenir une liste des vidéos YouTube d'une personne
7 septembre 2023 0
Peter
Il y a quelques jours, j'ai reçu la question suivante : Pouvez-vous télécharger toutes les vidéos publiques YouTube d'une personne, qui ont été téléchargées entre 2020 et aujourd'hui. Le nombre total de vidéos était d'environ 200. Et non, je n'ai pas pu accéder au compte YouTube de cette personne. Dans ce billet, j'utilise le compte YouTube API pour télécharger les métadonnées requises des vidéos, ...
De Docker-Composer à Docker Swarm : Configs
29 août 2023 0
Peter
Vous avez une application composée d'un certain nombre de projets Docker-Compose, et vous utilisez Docker-Compose pour construire, démarrer et déployer. Vous souhaitez maintenant aller plus loin et déplacer certains des projets Docker-Compose vers un autre serveur. Le choix le plus évident pour ce faire, et à essayer en premier, est Docker Swarm. Vous apprenez ...
Docker-Composer des projets avec des noms de services identiques
25 août 2023 0
Peter
Si nous avons des projets Docker-Compose identiques avec des noms de service identiques, reliés par un réseau Docker , nous devons nous assurer que nous accédons au bon service. Sur un réseau Docker , il y a deux façons d'accéder à un service : Par le nom du service Par le nom du conteneur J'ai plusieurs projets Docker-Compose qui sont presque identiques, chaque projet est dans son propre ...
X automatisation du web et scraping avec Selenium
11 août 2023 0
Peter
Lorsque vous souhaitez récupérer des données sur le web, vous devez savoir ce que vous faites. Vous ne voulez pas surcharger un serveur cible avec des requêtes. Si vous le faites à partir d'un seul endroit, un IP address, vous risquez d'être banni (temporairement). Si vous voulez scraper beaucoup, envisagez d'utiliser un service dédié tel que ZenRows, ...
Aiohttp avec serveurs DNS personnalisés, Unbound et Docker
13 juillet 2023 0
Peter
L'utilisation de aiohttp semble facile, mais ce n'est pas le cas. C'est déroutant. La documentation "Client Quickstart" commence par ce qui suit : Remarque Ne créez pas de session par demande. Le plus souvent, vous avez besoin d'une session par application qui exécute toutes les demandes ensemble. Des cas plus complexes peuvent nécessiter une session par site, par exemple une pour Github ...
Renvoyer uniquement les valeurs d'une liste d'enregistrements de FastAPI
6 juillet 2023 0
Peter
Dans Python, tout est une classe, ce qui signifie que les données du modèle sont similaires à un dictionnaire. Mais les dictionnaires ont des clés. Et lorsque vous renvoyez une liste de plusieurs dictionnaires à partir de FastAPI, la taille des données, clés et valeurs, est généralement deux fois plus importante que la taille des valeurs. Une taille plus importante et un temps plus long signifient ...