from flask import Flask, render_template, request, redirect import pymysql import pyshorteners app = Flask(__name__) # 配置 MySQL 数据库连接 app.config['MYSQL_DATABASE_USER'] = 'root' app.config['MYSQL_DATABASE_PASSWORD'] = 'guo784512' app.config['MYSQL_DATABASE_DB'] = 'your_database' app.config['MYSQL_DATABASE_HOST'] = 'localhost' # 初始化 MySQL 连接 db = pymysql.connect( user=app.config['MYSQL_DATABASE_USER'], password=app.config['MYSQL_DATABASE_PASSWORD'], database=app.config['MYSQL_DATABASE_DB'], host=app.config['MYSQL_DATABASE_HOST'], port=3306 # 将端口号改为 ) @app.route('/') def index(): return render_template('index.html') @app.route('/shorten', methods=['POST']) def shorten(): original_url = request.form['url'] s = pyshorteners.Shortener() short_url = s.tinyurl.short(original_url) # 将原始URL和短网址保存到数据库 with db.cursor() as cursor: cursor.execute("INSERT INTO urls (original_url, short_url) VALUES (%s, %s)", (original_url, short_url)) db.commit() return render_template('result.html', original_url=original_url, short_url=short_url) @app.route('/') def redirect_to_original(short_url): # 从数据库中获取原始URL并重定向 with db.cursor() as cursor: cursor.execute("SELECT original_url FROM urls WHERE short_url = %s", (short_url,)) result = cursor.fetchone() if result: original_url = result[0] return redirect(original_url) else: return "Short URL not found." if __name__ == '__main__': # 创建数据库表 with app.app_context(): with db.cursor() as cursor: cursor.execute("CREATE TABLE IF NOT EXISTS urls (id INT AUTO_INCREMENT PRIMARY KEY, original_url VARCHAR(255), short_url VARCHAR(255))") db.commit() app.run(debug=True, port=5001) # 将端口号改为 5001 # jkljll # zjs