python from flask import Flask, redirect, request import hashlib import sqlite3 app = Flask(__name__) app.config['DATABASE'] = './shorten_tv.db' def connect_db(): return sqlite3.connect(app.config['DATABASE']) def generate_short_code(url): hashed_url = hashlib.md5(url.encode()) short_code = hashed_url.hexdigest()[:6] return short_code def save_url_mapping(short_code, original_url): with connect_db() as db: cursor = db.cursor() cursor.execute('INSERT INTO urls (short_code, original_url) VALUES (?, ?)', (short_code, original_url)) db.commit() def get_original_url(short_code): with connect_db() as db: cursor = db.cursor() cursor.execute('SELECT original_url FROM urls WHERE short_code = ?', (short_code,)) result = cursor.fetchone() if result: return result[0] else: return None @app.route('/<short_code>') def redirect_to_original_url(short_code): original_url = get_original_url(short_code) if original_url: return redirect(original_url) else: return 'Invalid short code!' @app.route('/', methods=['POST']) def shorten_url(): original_url = request.form['url'] short_code = generate_short_code(original_url) save_url_mapping(short_code, original_url) return f'Short URL: http://shorten.tv/{short_code}' if __name__ == '__main__': app.run()


上一篇:
下一篇:
切换中文