Hướng dẫn dùng django reverse python
Giới thiệu Django - Khởi tạo projectSơ qua về DjangoDjango là một Framework lập trình web bậc cao được viết bằng ngôn ngữ lập trình Python. Show Django nhanh và đơn giản giúp chúng ta có thể lập trình web trong thời gian ngắn. Ngoài ra, Django còn có tài liệu rất tốt, cộng đồng Django đông và lớn mạnh. Nó tuân theo nguyên tắc DRY (Don't repeat yourself - Đừng lặp lại chính mình), trong khi những Framework khác lại không coi trọng điều này. Django cũng hỗ trợ ORM (Object Relistic Mapping) Mô hình MTV pattern:
Để code Django, chúng ta phải cài đặt được Python. Bạn có thể cài đặt Python và Pip ở hướng dẫn này, đây là hướng dẫn cài đặt với Ubuntu và mình cũng sẽ code trên hệ điều hành Ubuntu. Phiên bản Python mình sử dụng là Python 3.7, các bạn cũng có thể cài đặt Python
với các phiên bản Khởi tạo projectViệc đầu tiên là cài đặt môi trường ảo để phát triển dự án, có rất nhiều thư viện python có thể làm được điều này từ virtualenv đến pipenv. Để thuận tiện, mình sử dụng luôn pipenv để triển khai cài đặt. Ta chạy lệnh Tiếp theo là tạo folder chứa project và chạy môi trường ảo:
Lúc này, command line có dạng Tạo code project với lệnh
Lúc này, command line sẽ xuất hiện 1 đường dẫn http://127.0.0.1:8000/ và chúng ta truy cập vào đường dẫn này sẽ có dạng: Cấu trúc thư mục của project:
Kết nối với MySQLMỗi Framework lập trình web nào cũng cần phải có cơ sở dữ liệu để quản lý dữ liệu người dùng. Nhìn thoáng qua file
Ở đây, mặc định thì Django đang sử dụng hệ quản trị CSDL là sqlite3 cũng chính vì thế khi bạn chạy lệnh migrate bên trên, folder code sẽ tự
tạo file Để sử dụng được MySQL, chúng ta có thể cài đặt MySQL ở đây, bạn chỉ cần làm đến bước Mình chỉnh sửa lại code
Thế là xong, bạn chạy lại lệnh Để tên database và pasword thế này thì hớ
hênh quá, chúng ta phải tạo thêm biến
Trong file
và bạn chỉ cần thay những thứ tương ứng từ file
Chúng ta lại chạy lại câu lênh Docker cho projectTa thoát khỏi môi trường ảo trong phần 1 bằng lệnh
Nội dung file Dockerfile như sau:
Các nội dung này khá quen thuộc với người dùng Docker thường xuyên nên mình cũng không giải thích code nữa. Nội dung file docker-compose.yml như sau:
Ở file Bạn cần chú ý,
giá trị của Ngoài ra, file Chúng ta chạy các lệnh sau đển run docker:
Bạn mở thêm 1 tab command line nữa và chạy Nếu cả các lệnh trên không báo lỗi và chúng ta truy cập lại trang http://127.0.0.1:8000/ vẫn như cũ thì ổn rồi. Lúc này, chúng ta đang chạy web với docker mà không cần phải vào môi trường ảo ( Nếu xảy ra một số lỗi khi chạy thì các bạn có thể search Google để fix lỗi Cài đặt Static và MediaThư mục static trong Django là nơi chứa các folder, file tĩnh. Bao gồm: folder css, javascipt, font và các file ảnh cố định cho trang web. Ngoài ra, mình cũng dowload các file cần thiết trong bootstrap 4 về để dùng, các bạn có thể sử dụng thư viện django-bootstrap4 nếu không muốn dùng nó trong static. Code cần thiết cho thư mục static mình để ở đây, các bạn có thể download về để sử dụng ngay. Tiếp theo, đi đến file settings.py chúng ta thêm đoạn code sau để Django nhận biết thư mục static:
Ở đây, Thư mục static vừa tải xuống bên trên mình để ở trong thư mục con Nếu sau này chúng ta muốn thay đổi thư mục static, ta chỉ cần sửa thư mục static cùng cấp với settings.py, rồi chạy lại lệnh collectstatic để khởi tạo lại thư mục static mới. Media là thư mục lưu trữ các file có kiểu media như các ảnh, video. Từ đó, server có thể truy cập để thêm, sửa, xóa trong đó. Cấu hình cho media như sau:
Lần này chúng ta không cần làm gì thêm nữa. Nếu có lệnh truy cập thì Django sẽ tìm thư mục Media hoặc sẽ tạo nó nếu chưa có. Tùy chỉnh user model, category, product modelTrong Django, framework này đã tạo 1 mô hình mặc định cho người dùng có tên là user. Chúng ta nên tùy chỉnh và kế thừa các hàm từ đó vì việc mặc định này thường hạn chế yêu cầu của nhà phát triển. Tạo app mới có tên Ta thêm class như sau vào file
Thông tin các trường cần
thiết cho bảng mới Mình có tạo thêm class MyAccountManager để quản lý các thao tác người dùng:
Chạy lệnh Trong file
Chúng
ta truy cập đường dẫn Tiếp theo, ta tạo app category với lệnh
Trường Thêm code cho file
Chúng ta có giao diện cho phần quản lý category của superuser như sau: Tiếp theo, chúng ta tạo app store để quản lý bảng product với lệnh
Trong file
Ta có giao diện quản lý app product trong superuser như sau:
Trong file
Ngoài ra, ở app store ta cũng tạo 1
file urls.py với biến
Trên đây, ta thực hiện khai báo các url trong file Thiết kế Cart, CartItem modelTa sẽ tạo 2 bảng cart và cart_item trong cùng 1 app là carts với lệnh
Và thêm đoạn code để superuser quản lý, ở file
Bảng Cart có các bản ghi mô tả các giỏ hàng của người dùng, bao gồm cả người dùng đã đăng nhập và người dùng vãng lai (bản ghi được tạo dựa trên cookie của máy local). Bảng CartItem với bản ghi tương ứng là các mục hàng trong giỏ hàng. Với 2 khóa ngoại là product và cart Tùy chỉnh biến
Template cho trang home, store, product_detailĐi đến trang settings.py, ta tùy chỉnh biến
Chúng ta tạo 1 folder đồng cấp với manager.py là Từ file
Từ folder template, ta tạo 1 file base.html làm file template cơ sở cho hầu hết các trang trong hệ thống. Và 1 file home.html làm trang chủ. Tất cả các file template, các bạn có thể tham khảo ở đây Tiếp theo, ta tùy chỉnh file Chúng ta thêm file template cho trang product-detail để được trang product-detail như sau: Kết thúcĐến đây mình xin được dừng phần 1, phần 2 mình sẽ sớm tiếp tục việc hoàn thiện các chức năng:
Tạm biệt mọi người và hẹn gặp lại
|