Philip Kiely là một lập trình viên, nhà văn và doanh nhân đến từ Hoa Kỳ. Anh ấy chủ yếu làm việc trong lĩnh vực phát triển web Show Mặc dù Django rất hữu ích để viết API, nhưng mục đích chính của nó là làm khung để tạo các trang web đầy đủ. Kết xuất HTML là một trong những khả năng cơ bản của Django và nó sử dụng các mẫu Jinja để giúp việc viết các trang web linh hoạt, có thể tái sử dụng trở nên đơn giản. Bài viết này sẽ hướng dẫn bạn cách tạo một trang web cơ bản với Django; . Dự án này sẽ chứng minh các kỹ thuật thiết yếu của phát triển web với Django. viết chế độ xem cho HTML, xác thực bằng biểu mẫu, hiển thị dữ liệu từ DB và bao gồm nội dung tĩnh Bài viết này sẽ thực hiện một cách tiếp cận lặp đi lặp lại để phát triển trang web. Bạn có thể bắt đầu với Python 3 và Django 2. 2 và làm theo, hoặc bạn có thể bỏ qua và sao chép phiên bản cuối cùng từ GitHub. Nếu bạn đang xây dựng cùng với tôi, hãy bắt đầu bằng cách chạy 4. 5 để vào thư mục sau đó 6 sẽ tạo ứng dụng. Đảm bảo thêm 7 vào 8 trong cài đặt. py. Từ đó, bạn sẽ có thể theo dõi bằng cách sửa đổi các tệp riêng lẻCho dù bạn đã bắt đầu bằng cách nhân bản dự án hay tạo dự án của riêng mình, hãy đảm bảo rằng bạn chạy 9 và 0 để hoàn tất thiết lập. Chạy 1 để bắt đầu trang DjangoChúng ta sẽ bắt đầu bằng cách viết một khung nhìn đơn giản để hiển thị HTML trong trình duyệt. Django hỗ trợ chế độ xem dựa trên chức năng và chế độ xem dựa trên lớp. Trong các ví dụ này, chúng tôi sẽ sử dụng các chế độ xem dựa trên lớp nhưng quyết định đó tùy thuộc vào sở thích cá nhân vì cả hai đều cung cấp các tính năng giống nhau với cú pháp khác nhau. Chế độ xem dựa trên lớp hữu ích nhất khi bạn muốn hỗ trợ nhiều tương tác với một URL, ví dụ: nếu bạn cần hỗ trợ một số phương thức HTTP Trong bài viết này, chúng tôi đang thực hành Django, không phải HTML hay CSS. Vì vậy, chúng ta sẽ sử dụng một mẫu mã nguồn mở tuyệt vời từ Start Bootstrap. Mẫu sẽ cung cấp cho chúng tôi tất cả HTML, CSS và JS mà chúng tôi cần cho bài tập này, cho phép chúng tôi tập trung vào Django. Nếu bạn đang bắt đầu từ đầu, hãy tải xuống mẫu và sao chép chỉ mục. html và đăng nhập. html vào /core/templates. Mặc dù chúng tôi sẽ để lại nhiều chức năng trong các mẫu này dưới dạng trình giữ chỗ, nhưng chúng sẽ giúp chúng tôi viết một trang web tương tác Sau khi lưu mẫu vào "/core/templates/index. html," chúng ta có thể sử dụng chế độ xem sau trong "/core/views. py" để hiển thị trang ________số 8_______ Sau đó, thêm tuyến đường vào "/dashboard/urls. py" như sau
Với chế độ xem đã viết, khi chúng tôi chạy máy chủ và điều hướng đến http. //127. 0. 0. 1. 8000, chúng ta thấy trang Ngay bây giờ, trang trông không được tốt lắm. May mắn thay, mẫu bao gồm một loạt nội dung tĩnh (CSS, JavaScript và các tệp khác) mà chúng tôi có thể đưa vào để cải thiện trang web. Để làm như vậy, trước tiên hãy tạo một thư mục "tĩnh" trong "lõi", sau đó sao chép các thư mục "css," "js" và "vendor" vào tĩnh. Cuối cùng, trong trang html, bạn cần thêm "/static/" vào trước đường dẫn của ba lần nhập CSS trong tiêu đề và chín lần nhập JavaScript ở chân trang. Sau đó, trang trông đẹp hơn nhiều Khi chúng tôi có thể xem chính xác nội dung của trang, hóa ra có rất nhiều dữ liệu nhạy cảm (giả mạo) ở đây. Hãy hạn chế quyền truy cập bằng cách triển khai trang đăng nhập, đây sẽ là phần giới thiệu tuyệt vời về cách sử dụng biểu mẫu trong các trang web ở Django Bắt đầu bằng cách sao chép "đăng nhập. html" vào cùng thư mục "core/templates/" với "index. html. " Bạn cũng sẽ muốn thực hiện thay đổi tương tự như trước đối với hai lần nhập CSS và ba nguồn JavaScript. Chúng tôi sẽ thêm một tuyến đường và chế độ xem để hỗ trợ trang mới này trong url. py
Trong chế độ xem. py
Bạn sẽ lưu ý rằng hiện tại, chế độ xem đăng nhập của chúng tôi gần giống với chế độ xem chỉ mục của chúng tôi. Điều đó sẽ sớm thay đổi để hỗ trợ trang thực tế. Hãy truy cập trang đăng nhập tại http. //127. 0. 0. 1/đăng nhập/. Hãy thử đăng nhập bằng thông tin đăng nhập siêu người dùng mà bạn đã tạo trước đó Mặc dù trang trông tuyệt vời nhưng nó vẫn chưa làm gì cả. Đối với điều đó, chúng ta sẽ cần phải sử dụng một hình thức. May mắn thay, Django cung cấp một 2 mặc định tuyệt vời chấp nhận tên người dùng và mật khẩu. Chúng ta có thể thêm nó vào khung nhìn như sau
Điều này cũng sẽ yêu cầu một số sửa đổi đối với HTML của trang đăng nhập. Django hỗ trợ tạo khuôn mẫu Jinja ngay lập tức. Tạo khuôn mẫu Jinja là một phần mở rộng của HTML cho phép bạn bao gồm dữ liệu có dấu ngoặc kép 3 và các biểu thức có cú pháp tương tự 4. Chúng tôi sẽ sử dụng các thẻ Jinja để kết hợp biểu mẫu vào trang HTML
Chúng tôi có thể thêm một số css bằng cách bao gồm tập lệnh này sau đó. Vì các phần tử Jinja được hiển thị ở phía máy chủ HTML, nên chúng tôi có thể dựa vào các id phần tử hiện có trong DOM vào thời điểm tập lệnh này chạy trên máy khách
Sau những thay đổi này, việc truy cập trang đăng nhập sẽ cho phép chúng tôi đăng nhập và xem bảng điều khiển chính. Tuy nhiên, những độc giả tinh mắt sẽ nhận thấy rằng chúng tôi vẫn chưa triển khai bất kỳ biện pháp bảo vệ nào cho trang tổng quan. Thật vậy, bất kỳ ai vẫn có thể truy cập chỉ mục và xem tất cả thông tin nhạy cảm ở đó. Vì vậy, chúng ta phải kế thừa một lớp khác trong khung nhìn 5
Lớp 6 ngăn không cho bất kỳ ai trừ những người dùng được xác thực truy cập vào các trang mà nó bảo vệ. Nếu ai đó cố gắng truy cập chỉ mục trước khi đăng nhập, nó sẽ chuyển hướng họ đến trang đăng nhập để xác thực một cách thuận tiệnChúng tôi đã sử dụng Jinja để kết hợp một biểu mẫu; . Ngay bây giờ, chúng tôi chỉ có hai trang html, nhưng việc triển khai đầy đủ ứng dụng này sẽ có hàng tá. Thay vì sao chép và dán các phần tử phổ biến, chúng ta có thể kế thừa tiêu đề từ một mẫu cơ sở Chúng ta sẽ bắt đầu bằng cách tạo một tệp mới, "base. html," trong "lõi/mẫu. " Tệp này sẽ bao gồm thông tin tiêu đề chung giữa hai trang
Sau đó, các trang trong tương lai có thể sử dụng cú pháp sau từ "chỉ mục" đã sửa đổi. html. "
Chúng tôi có thêm một nơi để áp dụng khuôn mẫu Jinja trên trang chủ. Hiện tại, tất cả các số liệu trong bảng đều được mã hóa cứng vào HTML, yêu cầu tự chỉnh sửa trang web bất cứ khi nào dữ liệu thay đổi. Thay vào đó, chúng tôi có thể lưu trữ dữ liệu đó trong cơ sở dữ liệu của mình và chuyển dữ liệu đó tới chế độ xem. Điều này cũng sẽ giúp chúng tôi tiết kiệm gần 500 dòng HTML thủ công với dữ liệu hiện tại Đầu tiên, chúng ta cần một mô hình để đại diện cho nhân viên trong cơ sở dữ liệu. Trong "lõi/mô hình. py", chúng tôi định nghĩa một nhân viên như sau 0Đảm bảo rằng bạn đã đăng ký mô hình trong "core/admin. py. " 1Với mô hình được viết và đăng ký, chúng tôi có thể thực hiện và chạy các lần di chuyển (thoát khỏi máy chủ, 7, 9, 1). Điều hướng đến /admin và nhấp vào bảng nhân viên. Nhấp vào "Thêm nhân viên" ở góc trên bên phải và nhập bất kỳ dữ liệu nào bạn muốn vào biểu mẫuLàm điều này một vài lần nữa cho đến khi bạn có một công ty giả nhỏ. Sau đó, quay trở lại "quan điểm của chúng tôi. py" và sửa đổi 5 để chuyển cơ sở dữ liệu nhân viên vào tệp HTML dưới dạng Bộ truy vấn 2Cuối cùng, xóa toàn bộ bảng giả trong "index. html" và thay thế nó bằng một vòng lặp for trên dữ liệu chúng tôi đã nhập vào cơ sở dữ liệu 3Django tạo chỉ mục bằng cách hiển thị từ cơ sở dữ liệu của chúng tôi thay vì chỉ trả về dữ liệu phụ. Tất cả các tính năng tìm kiếm và đặt hàng vẫn hoạt động chính xác như trước đây, điểm khác biệt duy nhất là html được tạo phía máy chủ từ cơ sở dữ liệu thay vì mã hóa cứng Bây giờ chúng ta đã thấy một số mẫu mạnh mẽ để tạo các trang web với Django và Jinja. Việc sử dụng các mẫu và tiện ích mở rộng cho phép chúng tôi sử dụng lại mã chung giữa các trang. Biểu mẫu cho phép chúng tôi thu thập và truyền dữ liệu người dùng một cách an toàn (khi trang web được cung cấp qua HTTPS). Chúng tôi có thể sử dụng kết xuất phía máy chủ để đưa dữ liệu vào HTML và gửi cho máy khách. Những mẫu cơ bản này là những kỹ năng cần thiết cho phép bạn tạo ra một loạt các trang web trong Django HTML có cần thiết cho Python không?Bạn không cần học HTML hoặc CSS trước khi tìm hiểu sâu về Python . Tuy nhiên, có thể có một số lý do tốt để làm như vậy. Chẳng hạn, nếu bạn muốn trở thành một nhà phát triển web, bạn nên bắt đầu với HTML và CSS. Hai ngôn ngữ này, cùng với JavaScript, tạo thành cơ sở phát triển web giao diện người dùng.
Điều kiện tiên quyết cho Django là gì?Đầu tiên và quan trọng nhất, bạn cần biết Python . Khung của Django dựa trên lập trình Python; . Bạn cũng nên có hiểu biết cơ bản về các nguyên tắc cơ bản về mã hóa.
Tôi có thể học Django mà không cần giao diện người dùng không?Chẳng hạn như JS, HTML, CSS và những thứ khác. Nhưng không sao, chỉ cần học, thực hành và sau đó giải quyết. Bạn sẽ tiến bộ nhanh chóng. Có, bạn có thể học django mà không cần có bất kỳ kinh nghiệm nào về JavaScript . |