- Shortens URLs to a default 3-digit prefix using a random character and letter combination.
- Checks if the shortened URL already exists and attempt to re-run the code-generator until it finds an available combination.
- All data is stored in a single MySQL table.
- Case-sensitive. The database distinguishes between upper and lower characters.
- A Stats page lists all the shortened URLs, and shows how many times a target link has been redirected.
- There is a button to automatically copy the shortened URL to clipboard.
- Has an option to use Recaptcha to prevent spambots.
Clone the project
git clone https://github.com/glowsquid/Flask-URL-Shortener.git
Create and activate a virtualenv
Install the requirements
pip install -r requirements.txt
Update settings.py with your own MySQL credentials
Create the database in MySQL
CREATE DATABASE shortener;
python create_db.py to set up the table
Lastly, alter the database in MySQL to make characters case-sensitive:
ALTER DATABASE shortener CHARACTER SET utf8 COLLATE utf8_bin;
ALTER TABLE url CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
Run the app with
View the full source code at the github repository. Licence is GPLv3, feel free to fork the project.