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ị
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ánBà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
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. 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ề Django1. 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 8Việ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 9 0 1 2 3 0 1 2 33. 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,. To create a project, we use command 4Chúng ta sẽ có một thư mục 5 bên trong có cấu trúc như bên dưới. 2Thư mục 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 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 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. 9. Là tệp trống để xác định my_url là một gói. 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/ 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/
74 75 76 77 76 77 78 79 90 91 92 93 94 90 91 92 93 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 Để 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. 95Lư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 . 95 96 76 77 76 77 78 79 90 92 92 94 95 90___292 92 94 95 964. Khởi tạo ứng dụngTrong 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. Các cách tạo ra một ứng dụng django như sau 97Chúng ta có cấu trúc thư mục mới với thư mục bổ sung url_shortener
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. 99. Nơi chứa các cấu hình của ứng dụng. 30. Nơi chứa các đối tượng khai báo trong cơ sở dữ liệu của ứng dụng 31. Chứa các trường hợp kiểm tra đột ngột để thực hiện kiểm tra đơn vị. 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. 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.
Đâ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 7Tạ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 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ụngMặ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. Để 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 33 9Câ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. 3Tươ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ệuCó 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. 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 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/ Để 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 8Thự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. 34 0Sau 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 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. 35 1Lệ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 2Mở 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. 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 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 4Thự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ị. 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ườngGiả 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 36Thự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 5Trong 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. 6Thự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í danhTừ 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 7Open url_shortener/urls. py to add thêm định tuyế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 |