Neueste
- IP addresses mit ipset und Python sammeln und sperren
- Abbrechen von Aufgaben mit Python Asynchronous IO (AsyncIO)
- Run a Docker command inside a Docker Cron container
- Erstellen einer Captcha mit Flask, WTForms, SQLAlchemy, SQLite
- Multiprocessing, Dateisperren, SQLite und Prüfung
- Senden von Nachrichten an Slack mit chat_postMessage
Meistgesehen
- Flask RESTful API Validierung von Anfrageparametern mit Marshmallow-Schemas
- Verwendung von UUIDs anstelle von Integer Autoincrement Primary Keys mit SQLAlchemy und MariaDb
- Verwendung von Pythons pyOpenSSL zur Überprüfung von SSL-Zertifikaten, die von einem Host heruntergeladen wurden
- Verbindung zu einem Dienst auf einem Docker -Host von einem Docker -Container aus
- PyInstaller und Cython verwenden, um eine ausführbare Python-Datei zu erstellen
- SQLAlchemy: Verwendung von Cascade Deletes zum Löschen verwandter Objekte
Tags
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2Log fileLoggingMachine LearningMariaDBMessage brokerMultilanguageMultiprocessingPentestingPikaPostfixProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisSecurity testingSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWerkzeugWheelsWTFormsIP addresses mit ipset und Python sammeln und sperren
21 Mai 2023 0
Peter
Wenn Sie einen Server haben, der mit dem Internet verbunden ist, haben Sie dies wahrscheinlich in Ihren Protokolldateien gesehen: viele illegale externe Anfragen, die versuchen, auf Ihre Dienste zuzugreifen.
Ich betreibe einen Debian -Server und verwende Fail2Ban zur Intrusion Prevention. Standardverfahren, installieren, konfigurieren und vergessen. Da der Server zu bestimmten Zeiten heruntergefahren ...
Abbrechen von Aufgaben mit Python Asynchronous IO (AsyncIO)
2 Mai 2023 0
Peter
Für ein Projekt habe ich AIOHTTP verwendet, um die Antworten vieler entfernter Websites, URLs, zu überprüfen. Die URLs stammten aus einer Liste. Diese Liste kann Duplikate enthalten.
Alles war in Ordnung, bis ich bemerkte, dass einige Antworten auch einen Statuscode hatten: HTTP-429 'Zu viele Anfragen'. Was auch immer der Grund sein mag, Überlastung, Sicherheit, wir wollen uns freundlich verhalten ...
Run a Docker command inside a Docker Cron container
18 April 2023 0
Peter
When using Docker, your application typically consists of several Docker containers. Often, you want to run scripts inside these containers at certain moments, for example, every five minutes, once an hour, once a day.
This is where the job scheduler Cron comes in, and there are several options on how to do this. In this post I create a separate Cron container, and use the Docker Exec command to execute ...
Erstellen einer Captcha mit Flask, WTForms, SQLAlchemy, SQLite
10 April 2023
Peter
In der Vergangenheit habe ich etwas Code für einen (reinen Text) Captcha für eine Flask -Website geschrieben. Dies ist ein Update. Hier verwende ich ein Pypi-Paket, um das Bild zu generieren. Außerdem habe ich einen Captcha -Bildaktualisierungsbutton hinzugefügt.Sie können den Code unten ausprobieren, es ist ein (Newsletter-)Anmeldeformular. Obwohl dies eine Captcha -Lösung für eine Flask -Website ...
Multiprocessing, Dateisperren, SQLite und Prüfung
30 März 2023 0
Peter
Ich habe an einem Projekt mit SQLAlchemy und PostgreSQL gearbeitet. Für einige Tabellen wollte ich die Anzahl der Zeilen pro user begrenzen und habe dies durch Hinzufügen einer PostgreSQL -Prüffunktion und eines Triggers erreicht.
Beim manuellen Testen schien alles gut zu funktionieren, aber was, wenn ein user mehrere Prozesse starten und Zeilen genau zur gleichen Zeit hinzufügen würde? Ich ...
Senden von Nachrichten an Slack mit chat_postMessage
23 März 2023 0
Peter
Für ein Projekt habe ich bereits Nachrichten per E-Mail versendet, aber jetzt wollte ich auch Nachrichten an Slack senden. Natürlich verwenden wir das Python Slack SDK.
Die Dokumentation ist auf der Seite zu finden: Python Slack SDK - Web Client. In diesem Beitrag erstelle ich eine einfache SlackAPI Klasse mit ihrer eigenen SlackError Ausnahmeklasse.
Erstellen und konfigurieren Sie eine ...
PostgreSQL Sicherung mit Docker SDK für Python
9 März 2023 0
Peter
Dies ist ein kurzer Beitrag über die Sicherung einer Dockerized PostgreSQL Datenbank. Um auf die Datenbank zuzugreifen, führen wir normalerweise ein Bash-Skript auf dem Host aus, mit Befehlen wie:
docker exec -t <container> bash -c '<command>'
In diesem Beitrag ersetzen wir unser Bash-Skript durch ein Python -Skript. Warum? Weil wir Python kennen und die Programmierung in Bash ...
Verhinderung des Versands doppelter Nachrichten an ein entferntes System
21 Februar 2023 0
Peter
Oftmals müssen Anwendungen Nachrichten an ein entferntes System senden. In einer perfekten Welt hätten wir es nur mit dem Happy Flow zu tun: Es passieren keine schlimmen Dinge wie Ausnahmen oder Fehler.
Leider ist die Welt nicht perfekt. Neben Programmierfehlern können auch Verbindungen ausfallen, Datenbanksysteme können ausfallen, entfernte Systeme können ausfallen. Eine einfache Frage - können Sie ...
Politician Translator mit Spacy und Negate
11 Januar 2023 0
Peter
Dies ist ein kurzer Beitrag. Die ganze Zeit hören wir die Politiker reden, aber meistens meinen sie das Gegenteil. Wenn ein Politiker zum Beispiel sagt, dass er die Steuern senken wird, dann werden die Steuern steigen. Wenn ein Politiker sagt, er habe keine Beziehung mit dieser Frau, dann ... Und so weiter.
Also dachte ich, warum nicht ein Politician Translator in Python machen? In diesem Beitrag ...
Von monolithischem Code zu Services mit RabbitMQ und Pika
8 Januar 2023 0
Peter
In diesem Beitrag geht es um die Verwendung von RabbitMQ in Ihrer Python Anwendung. Wenn Sie Rabbit bereits verwenden, werden Sie in diesem Beitrag wahrscheinlich nichts Nützliches finden. Warum ein Beitrag über RabbitMQ? Weil ich eine Anwendung habe, die seit einem Jahr läuft, und ich dachte, dass ich meine Erfahrungen teilen möchte.
In diesem Beitrag wandeln wir eine monolithische ...
Flask -Anwendung mit stdout und stderr eines Hintergrundjobs
19 Dezember 2022 0
Peter
In einem Flask -Projekt musste ich einen Hintergrundjob ausführen, genauer gesagt einen Befehl, der in einem (Linux) Terminal läuft, und dessen Ausgabe, stdout und sterr, in Echtzeit in einem Browserfenster anzeigen. Sie können einige Lösungen im Internet finden und dies ist nur eine weitere. Ich verwende auch einen Code, den ich im Internet gefunden habe, siehe Links unten.
Diese Lösung verwendet:
multiproces ...
Aggregieren und tail Docker Containerprotokolle mit Docker SDK für Python
11 Dezember 2022 0
Peter
Das Problem: Sie haben eine Docker -Anwendung, die aus vielen (Mikro-)Services (Containern) besteht, und wollen alle diese Container auf Fehler überwachen.
Die Services sind meist Python Skripte, die das Standard Python Logging Modul verwenden und Nachrichten an stdout (und stderr) ausgeben:
... DEBUG ...
... INFO ...
... ERROR ...
Bei Verwendung des standardmäßigen Docker -Protokollierungstreibers ...
Python Anwendungsprotokollierung mit Docker
5 Dezember 2022 0
Peter
Wenn Sie eine Softwareanwendung entwickeln, werden Sie wahrscheinlich als erstes die Protokollierung einrichten. Zunächst nur auf der Konsole, aber bald werden Sie Protokolldateien hinzufügen.
Vor einigen Jahren begann ich, Docker für die Entwicklung und Produktion zu verwenden. Bei der Umstellung auf Docker habe ich keine großen Änderungen vorgenommen. Die Anwendungsprotokolldateien befinden sich ...
LogLineFollower: Zeilen einer wachsenden Protokolldatei verfolgen
9 September 2022 0
Peter
Ich war auf der Suche nach einer Möglichkeit, Zeilen einer Protokolldatei zu verarbeiten, während sie wächst. Ich fand einige Schnipsel und Pakete im Internet, aber nicht genau das, was ich wollte. Deshalb beschloss ich, mein eigenes Programm zu schreiben.
Nachdem ich eine erste Version programmiert hatte, suchte ich erneut und fand einige weitere Pakete. Aber als ich mir die Beschreibung, den Code ...
Verbindung zu einem Dienst auf einem Docker -Host von einem Docker -Container aus
11 August 2022 0
Peter
Wenn Sie ein Docker -Problem haben und im Internet suchen, werden Sie fast sicher über die Frage stolpern: Wie kann ich mich mit localhost verbinden? Gemeint ist: Wie kann ich mich von einem Docker -Container aus mit einem Dienst auf dem Docker -Host verbinden? Als ich anfing, Docker zu verwenden, hatte ich auch mit diesem Problem zu kämpfen.
Ich verwende Linux, Ubuntu, und als schließlich ...
AIOHTTP: Erkennung von DNS-Zeitüberschreitungen mit benutzerdefinierten Nameservern
27 Juli 2022 0
Peter
Wenn Sie AIOHTTP verwenden, um Daten von einer Webseite im Internet abzurufen, verwenden Sie wahrscheinlich einen Timeout, um die maximale Wartezeit zu begrenzen.
Wenn Sie einen Domänennamen verwenden, muss die IP-Adresse aufgelöst werden. Ohne die Verwendung eines separaten Resolvers sind Sie vom zugrunde liegenden Betriebssystem abhängig. Jeder Fehler überträgt sich auf ...
Flask Message Flashing: Ersetzen Sie Bootstrap Alerts durch Toasts
25 Juli 2022 0
Peter
Wenn Sie eine Flask -Anwendung mit Bootstrap haben, verwenden Sie wahrscheinlich Bootstrap Alerts , um flashed messages anzuzeigen. Ich benutze sie, und sie funktionieren, aber ich bin nicht wirklich zufrieden. Standardmäßig sehen sie nicht schön aus, und in den meisten Fällen nehmen sie viel Platz auf dem Bildschirm ein. Und wollen Sie wirklich, dass Benachrichtigungen wie "Sie sind eingeloggt" ...
SQLAlchemy: Verwendung von Cascade Deletes zum Löschen verwandter Objekte
16 Juli 2022 1
Peter
Obwohl die Dokumentation von SQLAlchemy ORM sehr gut ist, ist sie manchmal verwirrend und es fehlt an klaren Beispielen, aber vielleicht liegt das nur an mir. Was Cascade Deletes angeht, so finde ich den folgenden Text aus der SQLAlchemy -Dokumentation umwerfend:
Der Standardwert der Beziehung 'cascade'-option ist 'save-update, merge'. Die typische alternative Einstellung für diesen Parameter ...
SQLAlchemy PostgreSQL: Hinzufügen eines zweiten BigInteger Primary Key
28 Mai 2022 0
Peter
Angenommen, wir verwenden UUID Primary Keys in unserem Projekt. Das funktioniert gut, aber es gibt auch einige Tabellen mit Millionen von Datensätzen. Wir wissen, dass SELECT und INSERT -Operationen mit UUID-basierten Primary Key -Tabellen im Vergleich zu Integer -basierten Primary Key -Tabellen viel langsamer sein können. Wir möchten, dass diese riesigen Tabellen nur BigInteger Primary Keys ...
Umleitung bei einer Ausnahme in Flask unter Verwendung einer decorator
7 Mai 2022 0
Peter
In einer Flask -Anwendung implementieren Sie in der Regel globale Exception-Handler. In vielen Fällen ist dies ausreichend. Was aber, wenn Sie mehr Kontrolle wünschen?
In einem Projekt stellte ich eine Verbindung zu einem API her und wollte, dass eine Reihe von Routen, die den API verwenden, im Falle eines API -Fehlers auf eine 'Start'-Seite umleiten, natürlich mit einer entsprechenden Meldung. ...