Kiểm tra url trong python

Chúng ta là các thành viên lập trình, và chúng ta luôn được khuyến khích là. "Cách thức nhanh và hiệu quả nhất trong việc học lập trình và bắt tay vào giải quyết các bài toán thực tế". Kinh nghiệm và kiến ​​thức sẽ đến trong quá trình chúng ta giải quyết các bài toán này. Các "bài toán mẫu" hay pet project/ litte side project đến từ đâu?

Nội dung chính Hiển thị

  • Phân chia bài toán
  • Tất tần tật về Django

hôm nay, tôi sẽ cùng các bạn thực hiện xây dựng nhanh một ứng dụng Rút gọn liên kết bằng python-django, giống như bitly. com real time

Phân chia bài toán

Bài toán này nếu viết theo dạng user-story thì không có gì phức tạp, nó sẽ là các dòng yêu cầu như sau

Tôi là Mr. Bee, tôi là đại diện tiếp thị của công ty X, tôi thường xuyên phải gửi link đến các trang web của công ty cho khách hàng của chúng ta, đường link của chúng ta khá dài, khách hàng khó nhớ. Bản thân tôi đôi lúc cũng cần phải nhớ các đường link để ghi ra giấy sticky-note cho khách hàng. Nếu sử dụng liên kết thu gọn từ một dịch vụ bên ngoài thì không mang lại tin tưởng của khách hàng

Tôi muốn có một hệ thống Rút gọn liên kết có tên miền của công ty, cho phép tôi thu gọn url thành một chuỗi rút ngắn, có thể cho phép cá nhân hóa thành tên-số-điện-thoại của khách hàng


Sau khi vượt qua yêu cầu phân tích, câu chuyện này có thể tóm tắt lại bằng các yêu cầu sau. 1. Đầu vào là 1 liên kết gốc, hệ thống sẽ rút gọn liên kết gốc đó thành 1 dạng liên kết ngắn hơn và duy nhất. 2. Khi người dùng truy cập vào liên kết rút gọn, hệ thống sẽ chuyển nó đến liên kết gốc. 3. Người dùng có thể lựa chọn phần rút gọn liên kết của mình theo ý muốn.
1. Đầu vào là 1 liên kết gốc, hệ thống sẽ rút gọn liên kết gốc đó thành 1 dạng liên kết ngắn hơn và duy nhất.
2. Khi người dùng truy cập vào liên kết rút gọn, hệ thống sẽ chuyển nó đến liên kết gốc.
3. Người dùng có thể lựa chọn phần rút gọn liên kết của mình theo ý muốn.

Về mặt kỹ thuật, yêu cầu này có thể giải quyết rất đơn giản bằng cách xây dựng một ứng dụng chỉ với một bảng dữ liệu bao gồm các trường dữ liệu sau

bí danh. type string, is Rút gọn section will display for userurl. Type string, is link that user want to Rút ​​gọn.
url. Type string, is link that user want to Rút ​​gọn.

Khi người dùng thực hiện truy cập vào liên kết Rút gọn, hệ thống sẽ tìm kiếm trong cơ sở dữ liệu và trả về liên kết gốc kèm theo status_code 301 REDIRECT

Tất tần tật về Django

1. Django là gì?

Django là một python-web-framework mã nghuồn mở và miễn phí, cho phép xây dựng các web ứng dụng nhanh dựa trên các khung kiến ​​trúc đã được tối ưu hóa. Django được xây dựng bởi nhóm ngũ lập trình viên có nhiều kinh nghiệm đến từ Django Software Foundation(DSF) - một tổ chức phi lợi nhuận. Phần lõi của Django đã thực hiện xử lý những thứ phức tạp của hệ thống phát triển web bằng cách cung cấp các mô-đun có sẵn như ORM, Mẫu, Định tuyến,. Việc lập trình viên sử dụng django chỉ cần tập trung vào việc phát triển các ứng dụng của mình sao cho nó chạy đúng với yêu cầu của người dùng. Các tài liệu, mô tả về ưu điểm của django, các bạn có thể tìm hiểu thêm từ trang chủ của framework. https. //www. djangoproject. com/

Django đã trải qua nhiều lần LTS với nhiều thay đổi như 1. 11, 2. 2,. Phiên bản hiện tại (tháng 12/2020), của Django là 3. 1. x. Với mỗi phiên bản đều có tài liệu, hướng dẫn cho phép các thành viên lập trình có thể nhanh chóng tìm hiểu và xây dựng cho mình một ứng dụng dạng "blog" đơn giản

Nếu bạn là người mới bắt đầu tìm hiểu về Django, hãy bắt đầu từ tài liệu hướng dẫn miễn phí trên trang web của họ. https. // tài liệu. djangoproject. com/vi/3. 1/giới thiệu/hướng dẫn01/

Hoặc bạn có thể bắt đầu bằng bài viết dưới đây của tôi. ) Mặc dù nó sẽ không thể chi tiết như trên hướng dẫn

2. Cài đặt Django

Để bắt đầu cài đặt Django, chúng ta sẽ thực hiện việc cài đặt một môi trường ảo (tham khảo từ bài viết. Làm Chủ Môi Trường Ảo Python - Môi Trường Lập Trình Ảo ?

Thực hiện cài đặt Django thông qua trình quản lý gói pip

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
8

Việc cài đặt có thể kéo dài trong vài phút, tùy thuộc vào đường truyền mạng của chúng ta

Sau khi thực hiện cài đặt xong, chúng ta kiểm tra lại xem quá trình cài đặt đã thành công chưa bằng câu lệnh

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
9
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

0
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

1
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

2
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

3
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

0
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

1
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

2
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

3

3. Khởi tạo trang web với django

Hiện tại chúng ta sẽ bắt đầu thực hiện cài đặt trang web cho mình. Sau khi cài đặt xong django, chúng ta sẽ có một công cụ sử dụng trên dòng lệnh có tên là django-admin, công cụ này cho phép chúng ta thực hiện việc khởi động các trang web, ứng dụng, di chuyển, shell, dbshell,.
Sau khi cài đặt xong django, chúng ta sẽ có một công cụ sử dụng trên dòng lệnh có tên là django-admin, công cụ này cho phép chúng ta thực hiện việc khởi động các trang web .

To create a project, we use command

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

4

Chúng ta sẽ có một thư mục

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

5 bên trong có cấu trúc như bên dưới.
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
2

Thư mục

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

6 ở bên ngoài là một thư mục chứa toàn bộ dự án của chúng tôi. Tên của nó không quan trọng, Django framework không quản lý cái tên này, bạn có thể đổi tên nó thành các tên khác nhau nếu muốn

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

7. Tiện ích dòng lệnh của Django cho các tác vụ quản trị -> Nơi thực thi/truyền tải vào django-core lệnh CLI từ django-admin. Nếu có thời gian, các bạn có thể tìm hiểu sâu hơn về các tác vụ mà django-core cung cấp thông qua quản lý. py từ liên kết. django-admin và quản lý. https. // tài liệu. djangoproject. com/vi/3. 1/ref/django-admin/

Thư mục

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

5 bên trong là thư mục chứa các mô-đun cần thiết để xác định ý nghĩa cho dự án của bạn.
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

9. Là tệp trống để xác định my_url là một gói.
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
70. Chứa cài đặt/cấu hình của dự án Django. Các bạn có thể tìm hiểu sâu hơn về cách thức hoạt động của cài đặt mô-đun. py at link. https. // tài liệu. djangoproject. com/vi/3. 1/chủ đề/cài đặt/
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
71. Nơi khai báo các Đường dẫn-URL chính của dự án Django. Từ các đường dẫn được khai báo trong tệp này, các URL sẽ được xác định rõ ràng ở các tệp khác. Tham khảo thêm về các url tại. https. // tài liệu. djangoproject. com/vi/3. 1/topics/http/urls/______072. File cấu hình lưu trữ các thông tin sử dụng để triển khai lên webserver. Tham khảo thông tin. https. // tài liệu. djangoproject. com/vi/3. 1/howto/triển khai/asgi/______073. File cấu hình lưu trữ các thông tin sử dụng để triển khai lên webserver. Tham khảo thông tin. https. // tài liệu. djangoproject. com/vi/3. 1/howto/triển khai/wsgi/


Với các khung thông tin hiện có, chúng tôi đã có thể thực hiện bắt đầu trang web của mình để kiểm tra. Câu lệnh khởi động là.  

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
74
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
75
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
76
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
77
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
76
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
77
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
78
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
79
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

90
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

91
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

92
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

93
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

94
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

90
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

91
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

92
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

93
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

94

Đến đây là chúng ta đã khởi tạo một trang web đang chạy trên localhost và cổng 8000. Chúng ta sẽ thực hiện truy cập vào địa chỉ URL phía trên (http. //127. 0. 0. 1. 8000) và xem kết quả hiện ra
Chúng ta sẽ thực hiện truy cập vào địa chỉ URL phía trên (http. //127. 0. 0. 1. 8000) và xem kết quả hiện ra

Kiểm tra url trong python

Để thực hiện tắt ứng dụng, chúng tôi thực hiện nhập CTRL - BREAK trên thiết bị đầu cuối màn hình màu đen. Để lưu ý, giá trị 8000 là giá trị mặc định của cổng máy chủ khi khởi động máy chủ web khởi động, giá trị này có thể được thay đổi bằng cách khởi động máy chủ web, thêm giá trị cổng vào phía sau.  

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

95
Lưu ý rằng giá trị 8000 là giá trị mặc định của cổng máy chủ khi khởi động máy chủ web, giá trị này có thể thay đổi được bằng cách khởi động máy chủ web .
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

95
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

96
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
76
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
77
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
76
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
77
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
78
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
79
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

90
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

92
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

92
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

94
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

95
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

90
___292
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

92
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

94
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

95
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

96

4. Khởi tạo ứng dụng

Trong Django thì mỗi cụm chức năng sẽ được thiết kế như một gói python. Ví dụ như trang web của chúng ta có một cụm chức năng là xử lý các url, như vậy chúng ta sẽ có một ứng dụng django là shortener_url.
Ví dụ như trang web của chúng tôi có một cụm chức năng có khả năng xử lý các url, như vậy chúng tôi sẽ có một ứng dụng django là shortener_url.

Các cách tạo ra một ứng dụng django như sau

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

97

Chúng ta có cấu trúc thư mục mới với thư mục bổ sung url_shortener

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py

Bên trong thư mục url_shortener, chúng ta có các tệp và dự kiến ​​các chức năng của nó sẽ như sau

____298. Chứa các thông tin liên quan đến việc triển khai module quản trị website.
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

99. Nơi chứa các cấu hình của ứng dụng.
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

30. Nơi chứa các đối tượng khai báo trong cơ sở dữ liệu của ứng dụng
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

31. Chứa các trường hợp kiểm tra đột ngột để thực hiện kiểm tra đơn vị.
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

32. Chứa các khung nhìn để thực hiện lộ trình và hiển thị dữ liệu về đúng hướng.
______298. Chứa các thông tin liên quan đến việc triển khai module quản trị website.
______299. Nơi chứa các cấu hình của ứng dụng.
______230. Nơi chứa các đối tượng được khai báo trong cơ sở dữ liệu của ứng dụng
____231. Chứa các trường hợp kiểm tra đột ngột để thực hiện kiểm tra đơn vị.
______232. Chứa các khung nhìn để thực hiện lộ trình và hiển thị dữ liệu về đúng hướng.

Chúng ta sẽ viết một chế độ xem đơn giản để hiển thị lời chào mừng. Cách thực hiện sẽ như sau. Bước 1. Open url_shortener/views. py to make a function return cho câu chào mừngBước 2. Tạo tệp url_shortener/urls. py để định nghĩa đường dẫn-url cho con trỏ đến chế độ xem mới tạo. Bước 3. Mở tệp my_url/urls. py to make up definition url con trỏ vào path-url đã định nghĩa tại url_shortener/urls. py.
Bước 1. Open url_shortener/views. py to make a function return to answer answer
Bước 2. Tạo tệp url_shortener/urls. py để định nghĩa đường dẫn-url cho con trỏ đến chế độ xem mới tạo.
Bước 3. Mở tệp my_url/urls. py to make up definition url con trỏ vào path-url đã định nghĩa tại url_shortener/urls. py.

Cụ thể các bước sẽ làm như sau. Bước 1. Tạo lượt xem. Mở tệp url_shortener/views. py, add đoạn code with content as after.
Bước 1. Tạo lượt xem.
Mở tệp url_shortener/views. py, add đoạn code with content as after.

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

Đây là một chế độ xem (khung nhìn) đơn giản của Django, muốn xem có thể hiển thị được hiển thị bên ngoài, chúng ta cần gán nó vào một URL. Việc gán này cần một cấu hình trong url tệp. py. Để đơn giản, Django cho phép chúng ta tách riêng các URL với từng ứng dụng django, sau đó mới thực hiện ánh xạ lại ở các url. py ở thư mục chính

Bước 2. Tạo tệp url_shortener/urls. pySau khi tạo tệp, mở tệp và nhập vào nội dung như bên dưới
Sau khi tạo tệp, mở tệp và nhập vào nội dung như bên dưới

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
7

Tại đây, ta thấy urlpattern trỏ chuột vào các lượt xem. index and has alias is 'index' (để dễ quản lý)

Bước 3. Mở tệp my_url/urls. py, thực hiện kết nối dữ liệu đã khai báo từ url_shortener/urls. py vào my_url/urls. py

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

9

Ở đây, chúng ta đã thêm vào chức năng là include('url_shortener. url'), chức năng này cho phép thực hiện liên kết các url đến url cấu hình tệp trong các ứng dụng django

Thực hiện khởi động ứng dụng và truy cập vào đường dẫn http. //127. 0. 0. 1. 8000/url-shortener/, chúng ta sẽ thu được kết quả hiển thị trên màn hình

5. Cài đặt cơ sở dữ liệu cho ứng dụng

Mặc định thì Django sẽ cung cấp cho người dùng 1 cơ sở dữ liệu sử dụng sqlite3, đây là tệp cơ sở dữ liệu dạng, với tệp dữ liệu được đặt mặc định tại thư mục gốc. Chúng ta cũng có thể thay thế loại cơ sở dữ liệu hoặc kết nối vào cơ sở dữ liệu đã có bằng cách thay đổi cấu hình tại tệp my_url/settings. py. Trong khuôn khổ bài viết này, tôi sẽ không hướng dẫn phần thay đổi này, hẹn các bạn vào các bài viết sau.
Chúng ta cũng có thể thay thế loại cơ sở dữ liệu hoặc kết nối vào cơ sở dữ liệu đã có bằng cách thay đổi cấu hình tại tệp my_url/settings. py. Trong khuôn khổ bài viết này, tôi sẽ không hướng dẫn phần thay đổi này, hẹn các bạn vào các bài viết sau.

Để bắt đầu sử dụng cơ sở dữ liệu trong dự án của chúng ta, chúng ta sẽ thực hiện việc di chuyển dữ liệu của ứng dụng mặc định vào cơ sở dữ liệu

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

33
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

9

Câu lệnh di chuyển sẽ thực hiện cài đặt các bảng dữ liệu cần thiết cho các mô-đun/ứng dụng được đặt tại INSTALLED_APPS trong tệp my_url/settings. py. Trong ví dụ của chúng tôi, có các mô-đun/ứng dụng mặc định sau.
Trong ví dụ của chúng ta, có các mô-đun/ứng dụng mặc định sau.

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

3

Tương tự với nó là các bảng dữ liệu sẽ được cài đặt vào cơ sở dữ liệu sau câu lệnh di chuyển

6. Thiết kế mô hình & thực hiện di chuyển dữ liệu

Có nhiều phương án thiết kế cơ sở dữ liệu và gán nó vào mã nguồn như. code trước, cơ sở dữ liệu trước,. Trong ví dụ này, chúng ta sẽ sử dụng code-first, có nghĩa là chúng ta sẽ thiết kế các mô hình trước khi thực hiện di chuyển để tạo bảng dữ liệu trong cơ sở dữ liệu. Mỗi lớp mô hình tương ứng với 1 bảng dữ liệu, mỗi thuộc tính của lớp mô hình là một cột của bảng dữ liệu.
Trong ví dụ này, chúng ta sẽ sử dụng mã đầu tiên, nghĩa là chúng ta sẽ thiết kế các mô hình trước sau đó thực hiện di chuyển để tạo bảng dữ liệu trong cơ sở dữ liệu. Mỗi lớp mô hình tương ứng với 1 bảng dữ liệu, mỗi thuộc tính của lớp mô hình là một cột của bảng dữ liệu.

Các phần mô hình của Django được thiết kế theo Nguyên tắc DRY (Don't repeat yourself - https. // tài liệu. djangoproject. com/vi/3. 1/misc/design-philosophies/#dry) nên mã nguồn của model-class sẽ đặt tệp trung tại mỗi ứng dụng django nhưng cho phép truy cập từ các ứng dụng django khác nhau

Mở tệp url_shortener/models. py, thực hiện định nghĩa một lớp như bên dưới

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

7

Ở đây, chúng ta sẽ tiếp xúc với các từ khóa mới. - django. db. người mẫu. Người mẫu. Được mô tả chi tiết tại https. // tài liệu. djangoproject. com/vi/3. 1/ref/mô hình/trường hợp/#django. db. người mẫu. Người mẫu- CharField. Định dạng của trường lớp, biểu tượng lớp đặc trưng cho kiểu dữ liệu của trường dữ liệu được định nghĩa tại https. // tài liệu. djangoproject. com/vi/3. 1/ref/models/fields/
- django. db. người mẫu. Người mẫu. Được mô tả chi tiết tại https. // tài liệu. djangoproject. com/vi/3. 1/ref/mô hình/trường hợp/#django. db. người mẫu. Mô hình
- CharField. Định dạng của trường lớp, biểu tượng lớp đặc trưng cho kiểu dữ liệu của trường dữ liệu được định nghĩa tại https. // tài liệu. djangoproject. com/vi/3. 1/ref/mô hình/trường/

Để thực hiện kích hoạt các kiểu máy mới được định nghĩa, chúng ta cần thực hiện khai báo ứng dụng vào đối tượng INSTALLED_APPS trong tệp my_url/settings. py

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

8

Thực hiện tạo tệp cho phép ứng dụng di chuyển mới cài đặt bằng lệnh.  

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

34
# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

0

Sau câu lệnh này, chúng ta thấy trong thư mục url_shortener\migrations xuất ra một tệp có tên 0001_initial. py, has content

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
0

Đây chính là nội dung để chúng ta thực hiện việc di chuyển vào cơ sở dữ liệu cho ứng dụng url_shortener. The current method is used command.  

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

35
my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
1

Lệnh trên sẽ tải bảng dữ liệu trên vào bộ đệm của django-admin, để thực sự có bảng dữ liệu, chúng ta cần thực hiện di chuyển dữ liệu một lần nữa

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
2

Mở cơ sở dữ liệu db. sqlite3, chúng ta sẽ thấy có thêm một bảng dữ liệu có tên url_shortener_myurl

7. Django-admin

Đây là một trong số những tính năng làm nên thương hiệu "rapidly-application" của Django. Chỉ cần có các mô hình, có bảng dữ liệu là có thể xây dựng xong giao diện quản trị bao gồm các chức năng CRUD đơn giản. Để bắt đầu, hãy thực hiện nhập dòng sau vào dòng lệnh.
Để bắt đầu, hãy thực hiện nhập dòng sau vào dòng lệnh.

quản lý trăn. py tạo siêu người dùng

Sau đó, thực hiện nhập thông tin cơ bản như tên người dùng, email, mật khẩu. Đây là thông tin siêu người dùng nên cần phải. bộ nhớ tự động

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
3

Đến đây, khi thực hiện khởi động ứng dụng, hãy thực hiện truy cập vào trang web http. //127. 0. 0. 1. 8000/admin/, chúng ta sẽ yêu cầu thực hiện đăng nhập. Lúc này, sẽ thực hiện đăng nhập bằng tài khoản superuser đã tạo phía trên. Sau khi đăng nhập thành công, trang web sẽ thực hiện hiển thị ra trang quản lý "Quản trị trang web". Tại thời điểm này, tại Quản trị trang web chỉ chứa thông tin quản trị về Nhóm & Người dùng. Để thực hiện việc đưa phần quản trị (CRUD) của Shorten_URL vào, cần thực hiện khai báo vào tệp shortener_url/admin. py
Sau khi đăng nhập thành công, trang web sẽ thực hiện hiển thị ra trang quản lý "Quản trị trang web". Tại thời điểm này, tại Quản trị trang web chỉ chứa thông tin quản trị về Nhóm & Người dùng. Để thực hiện việc đưa phần quản trị (CRUD) của Shorten_URL vào, cần thực hiện khai báo vào tệp shortener_url/admin. p

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
4

Thực hiện khởi động lại ứng dụng hoặc làm mới lại trang web quản trị (trường hợp đặt DEBUG=True)

Nhấn vào "My url", chuyển sang trang quản lý dữ liệu của ứng dụng

Từ đây, chúng ta có thể thực hiện việc thêm/sửa/xóa các bản ghi. Sau khi thêm một số bản ghi vào, chúng ta sẽ có danh sách các bản ghi được hiển thị.
Sau khi thêm một số bản ghi vào, chúng ta sẽ có danh sách các bản ghi được hiển thị.

Click vào một liên kết chi tiết, chúng ta thu được

8. Hiển thị danh sách dữ liệu dưới góc nhìn của người dùng bình thường

Giả sử chúng ta sẽ thực hiện liệt kê tất cả các bí danh/url dữ liệu đang có trong cơ sở dữ liệu ra một danh sách. Sau đó người dùng có thể lựa chọn mở thử liên kết theo bí danh xem có thực hiện chuyển hướng sang đúng liên kết ở url hay không. Để bắt đầu làm, chúng ta sẽ mở tệp url_shortener/views. py, bổ sung thêm mã đoạn thực hiện nhập mô hình MyURL
Để bắt đầu làm, chúng ta sẽ mở tệp url_shortener/views. py, bổ sung thêm mã đoạn thực hiện nhập mô hình MyURL

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

36

Thực hiện thêm chức năng dưới đây để trả về danh sách các url và bí danh tương ứng

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
5

Trong câu lệnh đó `urls = MyURL. đối tượng ` có nghĩa là lấy tất cả bản ghi của bảng MyURLSau đó mở tệp url_shortener/urls. py, thực hiện thêm url cho trang hiển thị danh sách.
Sau đó mở tệp url_shortener/urls. py, thực hiện thêm url cho trang hiển thị danh sách.

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
6

Thực hiện khởi tạo máy chủ và truy cập vào liên kết. http. //127. 0. 0. 1. 8000/url-shortener/list, chúng tôi sẽ thu được kết quả

9. Xử lý khi người dùng mở một liên kết có chứa bí danh

Từ danh sách hiển thị phía trên, nếu người dùng nhấn vào 1 liên kết bất kỳ ví dụ. http. //127. 0. 0. 1. 8000/url-shortener/detail/profile/, nhiệm vụ của chúng ta là phải viết mã để thực hiện lấy giá trị là liên kết kết nối. https. // codelearning. io/chia sẻ/cách lập hồ sơ-python-application

Mở tệp url_shortener/views. py, bổ sung thêm mã đoạn thực hiện truy xuất dữ liệu từng bản ghi theo bí danh

my_url
│   db.sqlite3
│   manage.py
│
├───my_url
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│
└───url_shortener
    │   admin.py
    │   apps.py
    │   models.py
    │   tests.py
    │   views.py
    │   __init__.py
    │
    └───migrations
            __init__.py
7

Open url_shortener/urls. py to add thêm định tuyến

# url_shortener/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
return HttpResponse("Xin chào, đây là hệ thống rút gọn link của công ty X. Tôi có thể giúp gì cho bạn?")

37

Đến đây ta quay lại danh sách trang lúc nãy và thực hiện nhấn vào các liên kết rút gọn đã có sẵn, kết quả sẽ dẫn chúng ta đến trạng thái url gốc

Kết quả

Trên đây là một ví dụ nhỏ về việc tạo nhanh một ứng dụng web với python-django. Dự kiến ​​tôi sẽ viết thành 1 loạt bài viết liên quan đến Django, các phần sau của bài viết này sẽ có trong những tuần tiếp theo. Cảm ơn các bạn đã đọc bài viết của tôi