用Python Flask创建简洁高效的URL短链接服务

作者:csdn1561168266 时间:2022-10-12 16:21:49 

大家好,使用 Python Flask 创建 URL 缩短器是一个有趣而简单的项目,可以帮助您深入了解 Web 开发的世界。Flask 是 Python 的轻量级 Web 框架,可让您快速轻松地构建 Web 应用程序。在本文中,我们将介绍使用 Flask 构建基本 URL 缩短器的过程。

一、设置 Flask 应用程序

首先,为您的项目创建一个新目录并在该目录中打开一个终端。然后,运行以下命令为您的项目创建一个新的虚拟环境:

# For windows:
virtualenv venv
# For linux:
python3 -m venv venv

通过运行以下命令激活虚拟环境:

 # For windows
venv/Scripts/activate
# For linux
source venv/bin/activate

接下来,通过运行以下命令安装 Flask:

pip install Flask

在您的项目目录中创建一个名为的新文件app.py并添加以下代码以设置基本的 Flask 应用程序:

from flask import Flask, request, redirect
app = Flask(__name__)
@app.route('/')
def index():
   return 'Welcome to the URL Shortener'
if __name__ == '__main__':
   app.run(debug=True)

运行以下命令启动 Flask 开发服务器:

python app.py

在您的网络浏览器中访问http://localhost:5000以查看“欢迎使用 URL 缩短器”消息。

二、将 URL 存储在字典中

接下来,我们会将原始 URL 及其相应的缩短 URL 存储在 Python 字典中。将以下代码添加到您的app.py文件中:

url_map = {}
@app.route('/shorten', methods=['POST'])
def shorten_url():
   original_url = request.form['url']
   short_url = generate_short_url(original_url)
   url_map[short_url] = original_url
   return short_url
def generate_short_url(original_url):
   # Generate a unique short URL for the original URL
   # (We'll implement this in the next step)
   pass

三、生成唯一的短 URL

要生成唯一的短 URL,我们将使用哈希函数。哈希函数接受输入(在本例中为原始 URL)并返回固定长度的输出(短 URL)。我们将使用 SHA-1 哈希函数,它是 Pythonhashlib库的一部分。将以下代码添加到您的app.py文件中:

import hashlib
def generate_short_url(original_url):
   hash = hashlib.sha1(original_url.encode())
   short_url = hash.hexdigest()[:8]
   return short_url

四、重定向到原始 URL

最后,我们将添加一个路由,以便在用户访问缩短的 URL 时将用户重定向到原始 URL。将以下代码添加到您的app.py文件中:

@app.route('/<short_url>')
def redirect_url(short_url):
   original_url = url_map.get(short_url)
   if original_url:
       return redirect(original_url

来源:https://blog.csdn.net/csdn1561168266/article/details/130279146

标签:Python,Flask,短链接,URL
0
投稿

猜你喜欢

  • 解决IDEA GIT记录无法查看提交文件的问题

    2022-12-08 01:46:25
  • 网页设计经验谈

    2007-10-30 13:11:00
  • django实现前后台交互实例

    2022-04-12 20:53:33
  • mysql累积聚合原理与用法实例分析

    2024-01-25 14:23:43
  • 使用scrapy实现增量式爬取方式

    2022-08-18 04:08:10
  • 浅析PHP的ASCII码转换类

    2023-09-08 02:54:28
  • 关于golang中平行赋值浅析

    2024-05-05 09:33:42
  • 跟我学习javascript的定时器

    2024-05-11 09:32:09
  • Python Mock模块原理及使用方法详解

    2023-03-31 14:13:56
  • ASP编程入门进阶(十):Global.asa文件

    2008-07-12 07:05:00
  • 使用Nginx+uWsgi实现Python的Django框架站点动静分离

    2023-11-13 11:30:37
  • JavaScript中call,apply,bind的区别与实现

    2024-04-22 12:51:26
  • Java字符串 正则表达式详解

    2023-07-16 12:30:35
  • 由浅入深学习TensorFlow MNIST 数据集

    2021-06-04 23:57:52
  • 深入解析Go语言编程中slice切片结构

    2024-04-25 15:01:23
  • Python使用pandas导入xlsx格式的excel文件内容操作代码

    2022-03-12 04:29:57
  • 用javascript实现页面无刷新更新数据

    2011-08-14 07:54:08
  • Python聚类算法之基本K均值实例详解

    2023-07-14 12:49:08
  • 简单了解mysql方言dialect

    2024-01-21 03:15:15
  • MySQL对JSON类型字段数据进行提取和查询的实现

    2024-01-23 02:48:54
  • asp之家 网络编程 m.aspxhome.com