Trong bài viết này, chúng ta sẽ xem cách tạo ứng dụng rút gọn URL trong Django. Đây là một ứng dụng đơn giản sẽ chuyển đổi một URL dài thành một URL ngắn. Chúng tôi sẽ đạt được điều này bằng cách sử dụng thư viện Python, không phải bất kỳ thư viện nào dành riêng cho Django, vì vậy bạn có thể sử dụng mã này trong bất kỳ dự án Python nào.
Trước hết, hãy tạo một dự án Django và một ứng dụng. Thực hiện một số cài đặt cơ bản như bao gồm url của ứng dụng và bao gồm ứng dụng trong INSTALLED_APPS trong settings.py.
Ví dụ
Cài đặt pyshorteners mô-đun -
pip install pyshorteners
Trong urls.py của ứng dụng -
from django.urls import path from .views import url_shortner urlpatterns = [ path('', url_shortner.as_view(), name="url-shortner"), ]
Ở đây chúng tôi đặt chế độ xem làm chế độ xem trên url trang chủ.
Hiện có trong views.py -
from django.shortcuts import render import pyshorteners from django.views import View class url_shortner(View): def post(self, request): long_url = 'url' in request.POST and request.POST['url'] pys = pyshorteners.Shortener() short_url = pys.tinyurl.short(long_url) return render(request,'urlShortner.html', context={'short_url':short_url,'long_url':long_url}) def get(self, request): return render(request,'urlShortner.html')
Ở đây, chúng tôi đã tạo một chế độ xem với hai hàm xử lý yêu cầu, nhận trình xử lý sẽ hiển thị html giao diện người dùng và trình xử lý bài đăng sẽ nhận được URL dài và hiển thị lại giao diện người dùng của chúng tôi bằng URL ngắn.
Tạo mẫu trong thư mục của ứng dụng và thêm urlShortner.html trong đó và viết cái này -
<!DOCTYPE html> <html> <head> <title>Url Shortner</title> </head> <body> <div > <h1 >URL Shortner Application</h1> <form method="POST">{% csrf_token %} <input type="url" name="url" placeholder="Enter the link here" required> <button >Shorten URL</button> </form> </div> </div> {% if short_url %} <div> <h3>Your shortened URL /h3> <div> <input type="url" id="short_url" value={{short_url}}> <button name="short-url">Copy URL</button> <small id="copied" class="px-5"></small> </div> <br> <span><b>Long URL: </b></span> <a href="{{long_url}}">{{long_url}}</a> </div> {%endif%} </body> </html>
Đây là giao diện người dùng sẽ lấy URL dài và gửi yêu cầu, sau đó trả về URL ngắn.
Đầu ra