Recent
- rqlite: een alternatief voor SQLite met hoge beschikbaarheid en distributed
- Moet ik mijn Docker Swarm migreren naar Kubernetes?
- Een lijst met YouTube video's van een persoon ophalen
- Van Docker-Compose naar Docker Swarm: Configs
- Docker-Samenstellen van projecten met identieke servicenamen
- X webautomatisering en -schrapen met Selenium
Meest bekeken
- Gebruik van UUIDs in plaats van Integer Autoincrement Primary Keys met SQLAlchemy en MariaDb
- Met behulp van Python's pyOpenSSL om SSL-certificaten die van een host zijn gedownload te controleren
- Maak verbinding met een dienst op een Docker host vanaf een Docker container
- PyInstaller en Cython gebruiken om een Python executable te maken
- SQLAlchemy: Gebruik van Cascade Deletes om verwante objecten te verwijderen
- Flask RESTful API verzoekparametervalidatie met Marshmallow-schema's
Tags
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker SwarmDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2KubernetesLog fileLoggingMachine LearningMariaDBMessage brokerMultilanguageMultiprocessingPentestingPikaPostfixProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisrqliteScrapingSecurity testingSeleniumSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWeb automationWerkzeugWheelsWTFormsYouTuberqlite: een alternatief voor SQLite met hoge beschikbaarheid en distributed
17 oktober 2023 1
Peter
In een project gebruik ik een SQLite database. De gegevens zijn niet kritisch, ze kunnen op elk moment opnieuw worden geladen. Toch wil ik niet dat een deel van de applicatie niet meer reageert als de SQLite database tijdelijk niet beschikbaar is.
Ik was op zoek naar een snelle, min of meer fouttolerante database, en ook naar een distributed, zodat ik sommige leesmodules kan repliceren. Er kwamen ...
Moet ik mijn Docker Swarm migreren naar Kubernetes?
15 september 2023 0
Peter
Als je berichten op het internet leest waarin staat dat Docker Swarm dood is, word je bang. Ik heb een Docker Swarm draaien en ik vind het leuk, het is makkelijk als je al Docker gebruikt.
Wat zijn de alternatieven? We hebben de hele tijd gelezen dat er maar één ding te doen is en dat is migreren naar Kubernetes en al het andere vergeten.
Ik was halverwege mijn migratie van Docker naar ...
Een lijst met YouTube video's van een persoon ophalen
7 september 2023 0
Peter
Een paar dagen geleden kreeg ik de vraag: Kun je alle openbare YouTube video's van een persoon downloaden, die tussen 2020 en vandaag zijn geüpload. Het totale aantal video's was ongeveer tweehonderd. En nee, ik kon geen toegang krijgen tot het YouTube account van deze persoon.
In deze post gebruik ik YouTube API om de vereiste metadata van de video's te downloaden, één item per video. Ik zocht ...
Van Docker-Compose naar Docker Swarm: Configs
29 augustus 2023 0
Peter
U hebt een applicatie die bestaat uit een aantal Docker-Compose projecten en gebruikt Docker-Compose om te bouwen, starten en implementeren.
Nu wilt u een stap verder gaan en een aantal van de Docker-Compose projecten naar een andere server verplaatsen. De meest voor de hand liggende keuze om dit te doen, om eerst te proberen, is Docker Swarm. Je leert nog een paar Docker commando's en je bent klaar. ...
Docker-Samenstellen van projecten met identieke servicenamen
25 augustus 2023 0
Peter
Als we identieke Docker-Compose projecten hebben met identieke servicenamen, verbonden door een Docker netwerk, moeten we ervoor zorgen dat we de juiste service openen. In een Docker netwerk zijn er twee manieren om een service te benaderen:
Op servicenaam
Op containernaam
Ik heb meerdere Docker-Compose projecten die bijna identiek zijn, elk project staat in zijn eigen directory en heeft ...
X webautomatisering en -schrapen met Selenium
11 augustus 2023 0
Peter
Als je gegevens van het web wilt schrapen, moet je weten wat je doet. Je wilt een doelserver niet overladen met verzoeken. Als je dit doet vanaf een enkele locatie, een IP address, kun je een (tijdelijke) ban krijgen.
Als je groot wilt scrapen, overweeg dan het gebruik van een speciale service zoals ZenRows, ScrapFly, WebScrapingAPI, ScrapingAnt, enz. Ze dist verdelen je verzoeken over een heleboel ...
Aiohttp met aangepaste DNS-servers, Unbound en Docker
13 juli 2023 0
Peter
Het gebruik van aiohttp lijkt zo eenvoudig, maar dat is het niet. Het is verwarrend. De 'Client Quickstart' documentatie begint met het volgende:
Opmerking
Maak geen sessie aan per aanvraag. Waarschijnlijk heb je een sessie per aanvraag nodig die alle aanvragen samen uitvoert.
Complexere gevallen kunnen een sessie per site vereisen, bijvoorbeeld één voor Github en één voor Facebook APIs. ...
Retourneer alleen de waarden van een lijst met records uit FastAPI
6 juli 2023 0
Peter
In Python is alles een klasse, wat betekent dat modelgegevens lijken op een woordenboek. Maar woordenboeken hebben sleutels. En als je een lijst met veel woordenboeken uit FastAPI retourneert, is de grootte van de gegevens, sleutels en waarden, meestal veel meer dan twee keer zo groot als de grootte van de waarden. Een grotere omvang en meer tijd betekent dat onze toepassing niet erg efficiënt is, ...
IP address spoofing voorkomen met omgekeerde padfiltering
15 juni 2023 0
Peter
Deze post gaat over systeembeheer en heeft niets te maken met Python. Waarom dit dan hier posten? Omdat ik denk dat er velen zijn die net als ik een of meer webservers draaien en soms tegen deze problemen aanlopen.
In de vorige post schreef ik dat mijn ISPConfig Debian server onderhevig was aan port scanning, etc. en dat het bleek dat 95% van alle requests uit China kwamen, tenzij ... deze IP ...
IP addresses verzamelen en blokkeren met ipset en Python
21 mei 2023 0
Peter
Als je een server hebt die verbonden is met het internet, heb je dit waarschijnlijk gezien in je logbestanden: veel illegale externe verzoeken die proberen toegang te krijgen tot je diensten.
Ik onderhoud een Debian server, en gebruik Fail2Ban voor inbraakpreventie. Standaard praktijk, installeren, configureren en vergeten. Omdat de server op bepaalde tijden werd platgelegd, besloot ik een kijkje ...
Taken annuleren met Python Asynchrone IO (AsyncIO)
2 mei 2023 0
Peter
Voor een project gebruikte ik AIOHTTP om de antwoorden van vele websites op afstand, URL's, te controleren. De URL's kwamen uit een lijst. Deze lijst kan duplicaten bevatten.
Alles in orde totdat ik merkte dat sommige antwoorden ook status code hadden: HTTP-429 'Too Many Requests'. Wat de reden ook is, overbelasting, veiligheid, we willen ons vriendelijk gedragen en willen identieke URL's niet opnieuw ...
Voer een Docker commando uit in een Docker Cron container.
18 april 2023 0
Peter
Wanneer u Docker gebruikt, bestaat uw applicatie meestal uit meerdere Docker containers. Vaak wilt u in deze containers op bepaalde momenten scripts uitvoeren, bijvoorbeeld elke vijf minuten, eens per uur, eens per dag.
Dit is waar de taakplanner Cron om de hoek komt kijken, en er zijn verschillende opties om dit te doen. In deze post maak ik een aparte Cron container, en gebruik het Docker Exec ...
Een Captcha maken met Flask, WTForms, SQLAlchemy, SQLite
10 april 2023
Peter
In het verleden heb ik wat code geschreven voor een (text-only) Captcha voor een Flask website. Dit is een update. Hier gebruik ik een Pypi pakket om de afbeelding te genereren. Daarnaast heb ik ook een Captcha image refresh button toegevoegd.Je kunt onderstaande code proberen, het is een (nieuwsbrief) inschrijfformulier. Hoewel dit een Captcha oplossing is voor een Flask website, kan het ...
Multiprocessing, vergrendeling van bestanden, SQLite en testen
30 maart 2023 0
Peter
Ik werkte aan een project met SQLAlchemy en PostgreSQL. Voor een paar tabellen wilde ik het aantal rijen per user beperken, en deed dit door een PostgreSQL controlefunctie en trigger toe te voegen.
Bij handmatig testen bleek alles goed te werken, maar wat als een user meerdere processen zou starten en rijen zou toevoegen op precies hetzelfde moment? Ik heb de 'pg_advisory_xact_lock' toegevoegd ...
Berichten naar Slack sturen met chat_postMessage
23 maart 2023 0
Peter
Voor een project stuurde ik al berichten per e-mail, maar nu wilde ik ook berichten naar Slack sturen. Natuurlijk gebruiken we de Python Slack SDK.
De documentatie is te vinden op de pagina: Python Slack SDK - Web Client. In deze post maak ik een eenvoudige SlackAPI klasse met een eigen SlackError-uitzonderingsklasse.
Maak en configureer een nieuwe Slack App
We zullen onze berichten naar een Slack ...
PostgreSQL back-up met Docker SDK voor Python
9 maart 2023 0
Peter
Dit is een kort bericht over de back-up van een Dockerized PostgreSQL database. Om toegang te krijgen tot de database draaien we meestal een Bash-script op de host, met commando's als:
docker exec -t <container> bash -c '<command>'
In deze post vervangen we ons Bash-script door een Python -script. Waarom? Omdat we Python kennen en programmeren in Bash tijdrovend kan zijn. Hoewel ...
Voorkomen dat dubbele berichten naar een extern systeem worden gestuurd
21 februari 2023 0
Peter
Vaak moeten toepassingen berichten sturen naar een systeem op afstand. In een perfecte wereld hebben we alleen te maken met de Happy Flow: er gebeuren geen slechte dingen zoals uitzonderingen of fouten.
Helaas is de wereld niet perfect. Naast programmeerfouten kunnen verbindingen falen, databasesystemen kunnen falen, systemen op afstand kunnen falen. Een eenvoudige vraag - kun je wat code schrijven ...
Politician Translator met Spacy en Negate.
11 januari 2023 0
Peter
Dit is een kort bericht. De hele tijd horen we politici praten, maar meestal bedoelen ze het tegenovergestelde. Bijvoorbeeld, als een politicus zegt dat hij de belastingen zal verlagen, dan gaan de belastingen omhoog. Als een politicus zegt dat hij geen relatie heeft met die vrouw, dan... Etc.
Dus ik dacht, waarom geen Politician Translator maken in Python? In deze post begin ik met de resultaten. ...
Van monolithische code naar diensten met RabbitMQ en Pika
8 januari 2023 0
Peter
Dit bericht gaat over het gebruik van RabbitMQ in uw Python toepassing. Als je Rabbit al gebruikt, zul je waarschijnlijk niets nuttigs vinden in deze post. Waarom een bericht over RabbitMQ? Omdat ik een applicatie heb die het gebruikt, die al een jaar draait, en ik wilde mijn ervaringen delen.
In dit bericht transformeren we een monolithische applicatie in diensten die ontkoppeld zijn door wachtrijen. ...
Flask toepassing met stdout en stderr van een achtergrondjob.
19 december 2022 0
Peter
In een Flask project moest ik een achtergrondjob uitvoeren, meer bepaald een commando dat draait in een (Linux) terminal, en de uitvoer ervan, stdout en sterr, in real time tonen in een browservenster. Er zijn enkele oplossingen te vinden op het internet en dit is er nog een. Ik gebruik ook wat code die ik op het web heb gevonden, zie onderstaande links.
Deze oplossing gebruikt:
multiprocessing, ...