Recent
Meest bekeken
- PyInstaller en Cython gebruiken om een Python executable te maken
- Vermindering van de responstijden van een Flask SQLAlchemy website
- 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
- 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 brokerMicrok8sMultilanguageMultiprocessingNetworkingPentestingPikaPostfixPostgreSQLProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisrqliteSchedulingScrapingSecuritySecurity testingSeleniumSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWeb automationWerkzeugWheelsWTFormsYouTubeTijdreeksgrafiek met Flask, Bootstrap en Chart.js
16 december 2024 0
Peter
We hebben al een applicatie gebouwd met Flask en Bootstrap en we willen wat grafieken toevoegen. In deze korte post maken we een enkele webpagina met een tijdreeksgrafiek met Flask, Bootstrap en Chart.js. Deze pagina is een testpagina die we kunnen plakken en aanpassen voor onze toepassing. Zoals altijd doe ik dit op Ubuntu 22.04 Desktop. Overzicht De testpagina bevat een grafiek met ...
IPv6 gebruiken met Microk8s
3 december 2024 0
Peter
Voor een deel van mijn applicatie dat bestaat uit verschillende Docker-Compose projecten, had ik toegang nodig tot externe IPv6-only services. In eerdere posts schreef ik dat ik al een deel van mijn applicatie had verplaatst van Docker naar Microk8s (Kubernetes). Dit is het deel dat toegang vereist tot de externe IPv6-diensten. De Docker applicatie communiceert met de Microk8s applicatie via ...
Ingress gebruiken voor toegang tot RabbitMQ op een Microk8s cluster
20 november 2024 0
Peter
Enige tijd geleden heb ik een bericht gemaakt over het verplaatsen van een deel van een applicatie die RabbitMQ bevatte die draaide op Docker Swarm naar Microk8s. We gebruikten NodePort om toegang te krijgen tot het Kubernetes cluster RabbitMQ op de host. Onlangs heb ik dit heroverwogen en besloten om de Microk8s Ingress Controller te gebruiken om toegang te krijgen tot RabbitMQ.In deze ...
Eenvoudige videogalerij met Flask, Jinja, Bootstrap en JQuery
28 oktober 2024 0
Peter
We hebben een aantal camera's die korte clips genereren wanneer er iets voor de camera beweegt. Alle clips, video's, komen op één systeem terecht. We gebruiken standaardprogramma's om de video's te bekijken. Maar nu willen we deze video's delen met anderen op ons lokale netwerk, en we willen de videobestanden niet kopiëren. Een voor de hand liggende oplossing is om iets als een videogalerijserver ...
Basis taakplanning met APScheduler
19 oktober 2024 0
Peter
Je hebt een Python programma gemaakt, bijvoorbeeld om een back-up te maken van een database, en nu wil je het elk uur uitvoeren, of elke dag. Er zijn veel oplossingen om uit te kiezen, hier gebruiken we APScheduler, 'Advanced Python Scheduler', een taakplanner die aan veel eisen voldoet. Voor onze taak lijkt dit pakket misschien overkill, maar laten we het hier gebruiken en als we eenmaal de basis ...
Een 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, ...