Meest bekeken
- Met behulp van Python's pyOpenSSL om SSL-certificaten die van een host zijn gedownload te controleren
- PyInstaller en Cython gebruiken om een Python executable te maken
- Vermindering van de responstijden van een Flask SQLAlchemy website
- Maak verbinding met een dienst op een Docker host vanaf een Docker container
- Gebruik van UUIDs in plaats van Integer Autoincrement Primary Keys met SQLAlchemy en MariaDb
- SQLAlchemy: Gebruik van Cascade Deletes om verwante objecten te verwijderen
Tags
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDatabaseDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker SwarmDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2KubernetesLog fileLoggingMachine LearningMariaDBMessage brokerMultilanguageMultiprocessingPentestingPikaPostfixPostgreSQLProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisrqliteScrapingSecuritySecurity testingSeleniumSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWeb automationWerkzeugWheelsWTFormsYouTubeEen databaseswitch met HAProxy en de HAProxy Runtime API
13 augustus 2024 0
Peter
Een van mijn projecten had een database met hoge beschikbaarheid nodig (willen we dat niet allemaal...). Dit betekent (asynchrone) replicatie en een opstelling met meerdere knooppunten. Er bestaan verschillende oplossingen, waarover ik in een andere post zal schrijven. In deze scenario's hebben we meerdere replica's van de hoofddatabase, en als er een probleem optreedt, schakelen we van de ene database ...
Docker Swarm rolling updates
7 juli 2024 0
Peter
Enige tijd geleden schreef ik dat het het beste zou zijn om over te stappen op een Kubernetes variant en nu gaat deze post over Docker Swarm. Ja, ik gebruik nog steeds Docker Swarm omdat ik een project heb dat deze variant gebruikt. Onlangs heb ik de ontwikkeling verplaatst van Docker naar Docker Swarm, voornamelijk omdat je met Docker Swarm de basis van container orkestratie leert, dus waarom ...
Database UUID primaire sleutels van je webapplicatie verbergen
29 maart 2024 0
Peter
Als je een webapplicatie maakt, moet je heel voorzichtig zijn dat je niet te veel informatie vrijgeeft. Als je (auto-increment) Integer IDs gebruikt in je database, dan geef je waarschijnlijk al te veel prijs. Enkele voorbeelden. Een Integer user_id maakt het makkelijk om te raden hoeveel nieuwe inschrijvingen je elke dag ontvangt. Met een Integer order_id kun je gemakkelijk raden hoeveel ...
Don't Repeat Yourself (DRY) met Jinja2
20 februari 2024 0
Peter
Ik was wat dingen aan het uitproberen met Jinja2, maakte een kleine Flask app, en dacht waarom zou ik dit niet delen. Wat ik wilde bereiken was om alle paginanamen in één sjabloonbestand te zetten. Net als bij Python moet je bij het schrijven van veel code oppassen dat je niet in herhaling valt met Jinja2. Voor je het weet heb je veel sjabloonbestanden met dezelfde soort informatie. En wanneer ...
SQLAlchemy, PostgreSQL, maximum aantal rijen per user
5 februari 2024 0
Peter
Je hebt een multi-user applicatie die SQLAlchemy en PostgreSQL gebruikt en je wilt het aantal rijen per user van een bepaalde tabel beperken. Bijvoorbeeld, elke user kan maximaal vijf rijen hebben. Je hebt een bewerking nodig zoals: Vergrendel de tabel Tel het aantal berichten van de user Als het aantal minder dan vijf is: Nieuwe post toevoegen De tabel ontgrendelen Else: Ontgrendel ...
Toon de waarden in SQLAlchemy dynamische filters
18 januari 2024 0
Peter
Wanneer ik SQLAlchemy gebruik, gebruik ik vaak dynamische filters in mijn queries. Dit betekent dat ik begin met een lijst met enkele voorwaarden en meer voorwaarden toevoeg die afhankelijk zijn van andere variabelen.Hier is een query met een statisch filter: # query with static filter product_colors = ['white'] stmt = sa.select(Product).\ where(sa.and( Product.category.in_(my_categories), ...
Veilige gegevensoverdracht met Public Key versleuteling en pyNaCl
2 december 2023 0
Peter
Dit is een korte post over het veilig overdragen van gegevens tussen twee personen. Hiervoor gebruiken we het Python pyNaCl pakket om private en publieke sleutels te genereren en de gegevens te versleutelen en te ontsleutelen. Ik heb ook het Python keyring pakket toegevoegd om de private_key en public_key op te slaan. Niet echt zo moeilijk. Ik had een basisklasse nodig om dit te doen en die deel ik ...
rqlite: 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 ...