Recent
- Hiding database UUID primary keys of your web application
- Don't Repeat Yourself (DRY) with Jinja2
- SQLAlchemy, PostgreSQL, maximum number of rows per user
- Show the values in SQLAlchemy dynamic filters
- Secure data transfer with Public Key encryption and pyNaCl
- rqlite: a high-availability and distributed SQLite alternative
Most viewed
- Using Python's pyOpenSSL to verify SSL certificates downloaded from a host
- Using UUIDs instead of Integer Autoincrement Primary Keys with SQLAlchemy and MariaDb
- Connect to a service on a Docker host from a Docker container
- Using PyInstaller and Cython to create a Python executable
- SQLAlchemy: Using Cascade Deletes to delete related objects
- Flask RESTful API request parameter validation with Marshmallow schemas
Tags
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker SwarmDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2KubernetesLog fileLoggingMachine LearningMariaDBMessage brokerMultilanguageMultiprocessingPentestingPikaPostfixPostgreSQLProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisrqliteScrapingSecuritySecurity testingSeleniumSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWeb automationWerkzeugWheelsWTFormsYouTubePredicting the next future value using Deep Learning and LSTM
30 January 2022 0
Peter
Many problems are time related. We have collected some samples and now want to use them to predict the next value. That is what this post is about. It is not about predicting many future values, that is a different topic.As a data scientist noob, I just work through some examples I found on the internet. I change the input sequence and see what happens. You might find this useful. I found the 'Machine ...
Predicting values using Deep Learning and Keras
28 January 2022 0
Peter
I have a dataset, many rows with N inputs and 1 output, and want to predict the output value for any new combination of input values. I am also a data science noob, but stories on the internet about Deep Learning suggest we can easily create some kind of black box with some neurons, nodes, in it, and then use the dataset to train the black box. After this we can feed any inputs and our black box gives ...
Python file I/O on Windows and Linux are two different things
8 December 2021 0
Peter
I have a Python program running fine on Linux. Few months ago I wanted to run this on Windows. This was the first time I used Python on Windows. Install Python app, create virtual environment, copy and run. No problems ... oh but there was a problem. My session sometimes disappeared ... WTF! I noticed the problem by repeatly hitting F5 in a very short time. Time for a thorough investigation. The ...
Create a colors class and color mapper for your application
27 November 2021 0
Peter
I was implementing some charts with Chart.js and needed to pass colors from my Flask application to the template. The graph is a line graph and the number of lines can vary. With the graph I also show a table with the (numeric) values used in the graph. The lines have different colors, I choose them from a list of colors. The table of line values has a column for each line. I want the header cell ...
Using PyInstaller and Cython to create a Python executable
6 October 2021 0
Peter
You have created a Python application and want to distribute it. You probably have it running in a Python Virtual Environment. But customers don't have this setup, some may not even have Python installed. There are several programs that can convert your Python application into a single executable file. Here I am using PyInstaller. You may also want to protect some of your code and/or speed up some ...
IMAPClient and flattening the BODYSTRUCTURE
27 September 2021 0
Peter
Application developers want to use proven solutions to create an application. Many times this works but with the IMAPClient package there are a number of things missing. The whole idea of IMAP is to get only what you request. Suppose you have an email with many attachments but you want to view or download only one of them. To be able to do this you need the 'body_number' of this attachment and then ...
Blocking unsafe resources in HTML email using BeautifulSoup
30 August 2021 0
Peter
I have created an IMAP E-Mail Reader using IMAPClient and Flask. The IMAP E-Mail Reader decodes the email into valid HTML. Then it needs to display this HTML through the browser. Works fine, so far so good. In this post I describe how I implemented an option in my IMAP E-Mail Reader to block unsafe resources in the HTML. To do this, I use BeautifulSoup and Python's Regular expression operations. Why ...
Python Multiprocessing graceful shutdown in the proper order
16 June 2021 0
Peter
For a new project I needed a deamon process that must execute many, more or less identical, operations on different resources. In this case the operation is IO bound and I solved it by using ThreadPoolExecutor. So far, so good. Next I wanted to store the results in files. Of course we use a queue to communicate between processes. The worker() process uses q.put() to add items to the queue and the ...
FastAPI + SQLAlchemy: Asynchronous IO and Back Pressure
4 June 2021 0
Peter
APIs are becoming more and more important. Companies want to share their data with customers. Or want to enable third parties to create applications based on their APIs. Few months ago I created an API with Flask, SQLAlchemy, Marshmallow and APISpec, it was not really difficult, and works fine. Then I read more about FastAPI, an API framework that also supports Python async out of the box. It is based ...
Connect two Docker containers having their own Docker Compose files
26 May 2021 0
Peter
I wanted to create a network between a database Docker container and an application Docker container, both having their own Docker Compose files. And I also wanted to make sure doing it right before implementing this in the actual docker-compose files. Test first baby ... I also did this some time ago but had to look into this again because Docker Compose now has a name option in networks section. ...
Using Locust to load test a FastAPI app with concurrent users
24 May 2021 1
Peter
I just completed my first FastAPI app. This app allows users to have their own items, meaning that the user data models all have a user_id field. Nothing special but as FastAPI introduces some things new to me, like Dependency Injection, I was unsure if my app would work the way I wanted. My question was: if I load test the API with many concurrent users, does it still work? Warning. Only run a load ...
Documenting a Flask RESTful API with OpenAPI (Swagger) using APISpec
22 April 2021 1
Peter
When you create an API, you want to document it and today it is obvious to use OpenAPI for this. I am already using the Marshmallow package. The same people also developed the package APIspec, with a Flask plugin in an additional package apispec-webframeworks. To present the OpenAPI documentation I use the package flask-swagger-ui and the package flask-jwt-extended is used to protect the endpoints. Below ...
Flask RESTful API request parameter validation with Marshmallow schemas
30 March 2021 1
Peter
When you build a RESTful API the first thing you do is define the status codes and error responses. RFC 7807 'Problem Details for HTTP APIs' specifies the minimum parameters you should return. If you did not looked into this, I suggest you do. Of course you often want to include more details about what went wrong. APIs are for developers and we do want to make it easy for them to understand why a call ...
Flask SQLAlchemy CRUD application with WTForms QuerySelectField and QuerySelectMultipleField
8 March 2021 0
Peter
For a new Flask application using WTForms and SQLAlchemy, I had many relationships between tables and was looking for the easiest way to manage these tables. The most obvious choice is to use the QuerySelectField and QuerySelectMultipleField present in the wtforms-sqlalchemy package. Since I haven't used them before, I created a small application to play with. Below I show you the code (development ...
Migrating from Bootstrap 4 to Bootstrap 5
17 January 2021 1
Peter
Nowadays, websites use a lot of CSS and Javascript. When you build websites, you can't test them all the time with the major browsers. Instead, you need a framework that supports all the major browsers. This framework needs to be well supported and that means only a few remain. For this site, I chose Bootstrap 4. This is not a coincidence. A few years ago I was looking for the best framework for a ...
Using Python's pyOpenSSL to verify SSL certificates downloaded from a host
17 December 2020 2
Peter
While writing a script to check if websites correctly redirected to 'https:/www.' I thought to add some SSL certificate checks as well. This means I had to verify SSL certificates downloaded from a host. Is the certificate really for this website? Show me the expiration date. Is the certificate chain correct? And can we trust the certificate(s)? Initially I got stuck where many people got stuck because ...
Why your website canonical name must be 'www' (or 'app' or something else)
27 November 2020 2
Peter
I know, there are many articles about this subject. But I thought it was useful to write a post about this because I did not know all the details. I assume your website can be accessed from the internet using a 'without-www' URL and a 'with-www' URL. This article is not about selecting a website URL for marketing purposes. Even if you are using a 'with-www' URL for your website, you can still communicate ...
Flask's SERVER_NAME, subdomains and 404 errors
25 November 2020 2
Peter
This is a short post about Flask and the config variable SERVER_NAME. Like many developers I bumped into this at a certain moment, and I thought I share my story. Hopefully this will prevent headaches for some. My websites must be available by typing the following addresses in the browser: https://example.com = 'without-www', and, https://www.example.com = 'with-www' Whats more, for this ...
Flask, Celery, Redis and Docker
29 October 2020 1
Peter
This is a post about how I use Docker and Docker-composer to develop and run my Flask website with Celery and Redis. There are many articles on the internet about this and if you are searching for them do not forget to search on Github.com. I just grabbed the bits and pieces and created my own setup. Before going into this I want to mention two other things that came up when adding Celery to Flask. The ...
Celery, Redis and the (in)famous email task example
10 October 2020 0
Peter
Being able to run asynchronous tasks from your web application is in many cases a must have. One way to achieve this is to use Celery. There are many articles on the internet and some examples are given. I really liked Miguel Grinberg's posts about Celery. Very clear, thank you Miguel. But Miguel's post and most other articles are just an introduction. When you start with Celery you suddenly realize ...