app = Flask(__name__)
conn = sqlite3.connect('links.db', check_same_thread=False)
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS links (id INTEGER PRIMARY KEY AUTOINCREMENT, long_url TEXT)')
conn.commit()
def int_to_base62(num):
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
result = ''
while num 0:
num, rem = divmod(num, 62)
result = chars[rem] + result
return result or '0'
@app.route('/<code')
def redirect_url(code):
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
num = 0
for c in code:
num = num * 62 + chars.index(c)
cursor.execute('SELECT long_url FROM links WHERE id = ?', (num,))
row = cursor.fetchone()
if row:
return redirect(row[0])
return Not found, 404