Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xemeds/tiny0
Custom URL shortener in Flask.
https://github.com/xemeds/tiny0
flask python url-shortener
Last synced: 3 months ago
JSON representation
Custom URL shortener in Flask.
- Host: GitHub
- URL: https://github.com/xemeds/tiny0
- Owner: xemeds
- License: mit
- Created: 2020-07-18T10:04:13.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-05-01T21:44:10.000Z (over 1 year ago)
- Last Synced: 2024-08-02T01:27:29.457Z (6 months ago)
- Topics: flask, python, url-shortener
- Language: Python
- Homepage:
- Size: 105 KB
- Stars: 57
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - xemeds/tiny0 - Custom URL shortener in Flask. (Python)
README
# How it works
Each URL that is submitted goes through a simple check for validity and/or added http:// before it to redirect successful.
After that, a base 64 string is generated and added to a SQLite database with the corresponding URL that was submitted.
The user is then given a short URL that is formatted as: WEBSITE_DOMAIN/token, the token being the base 64 string.
Whenever this URL is visited the user will get redirected to the tokens corresponding URL in the database.# Run locally
**Highly encouraged to create a python environment first.**
Clone the repository:
$ git clone https://github.com/xemeds/tiny0.git
Move into the cloned folder and install the required libraries:
$ cd tiny0
$ pip install -r requirements.txtAfter that run with:
$ python run.py
Visit the below URL to view the flask app:
127.0.0.1:5000
**NOTE:** When running locally all redirects will also be local.
# Deploying
If you do not have a dedicated server, I highly recommend using [Linode](https://www.linode.com/), [Heroku](https://www.heroku.com/) or [PythonAnywhere](https://www.pythonanywhere.com/) to host your application.
Before deploying, make sure to set the following environment variables:
$ export WEBSITE_DOMAIN=
$ export SECRET_KEY=
$ export DEBUG=
$ export SQLALCHEMY_DATABASE_URI=If not they will default to the following values:
WEBSITE_DOMAIN=127.0.0.1:5000
SECRET_KEY=SECRET_KEY
DEBUG=true
SQLALCHEMY_DATABASE_URI=sqlite:///database.db# License
This project is under the [MIT](https://github.com/xemeds/tiny0/blob/master/LICENSE) license.