You are on page 1of 27

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN 1

BÁO CÁO BÀI TẬP LỚN


MÔN HỌC : LẬP TRÌNH PYTHON

CHỦ ĐỀ : PHÁT TRIỂN Website bán hàng

Giảng viên : Vũ Minh Mạnh


Nhóm thực hiện : 12
Sinh viên thực hiện : Lê Trung Đức – B21DCNN243
Nguyễn Đình Đồng – B21DCCN231
Hoàng Văn Minh Hiếu – B21DCCN051
Nguyễn Văn Quân – B21DCCN615

Hà Nội, tháng 10 năm 2023


MỞ ĐẦU

Website là một kênh giới thiệu sản phẩm thật sự tuyệt vời và hữu ích cho các
doanh nghiệp. Các sản phẩm sẽ được đưa đến với khách hàng một cách chi tiết và cụ thể
nhất thông qua hình ảnh và thông tin rõ ràng. Khách hàng sẽ thực sự bị thuyết phục với
cách giới thiệu trực quan và sinh động trên website. Từ đó họ sẽ có ấn tượng tốt với sản
phẩm và có khả năng mua hàng nhanh chóng hơn. Với website riêng, doanh nghiệp có
thể tận dụng các nguồn traffic khác để tăng lượng truy cập vào web. Trong đó chủ yếu là
các nguồn từ tìm kiếm tự nhiên – SEO. Khi kết hợp nguồn traffic và website, doanh
nghiệp sẽ thu hút được thêm khách hàng đến trang web của mình và tối ưu hoạt động bán
hàng tại đây.

Website là bộ mặt của doanh nghiệp trên Internet bởi nó phản ánh đầy đủ thông
tin, sản phẩm cùng đặc điểm của doanh nghiệp đó. Chính vì vậy khi xây dựng được
website ấn tượng và nổi bật, doanh nghiệp sẽ trở nên tin cậy và uy tín hơn trong lòng
công chúng. Đây cũng là cách để doanh nghiệp khẳng định giá trị và sự chuyên nghiệp
của mình. Bên cạnh bán hàng trực tiếp tại cửa hàng, website là kênh bán hàng rất phổ
biến hiện nay. Sự phát triển của internet cùng thói quen online của người dùng đưa đến
hiệu quả cao khi bán hàng trên internet. Website sẽ giúp đẩy mạnh hoạt động bán hàng
mọi lúc mọi nơi mà không cần đến sự điều khiển của con người. Khi website được xây
dựng đúng cách, khách hàng sẽ không cần đến cửa hàng mà có thể mua hàng dễ dàng trên
web và giúp tăng sự hài lòng của họ.
Phân công thực hiện:

STT Tên thành viên Mã sinh viên Nội dung thực hiện

1 Lê Trung Đức B21DCCN243 Phân tích bài tập lớn, tìm hiểu lý thuyết (Django,
(trưởng nhóm) HTML). Tìm hiểu về chức năng ,viết code, làm báo cáo
phần chức năng .

2 Nguyễn Đình B21DCCN231 Phân tích bài tập lớn, tìm hiểu lý thuyết (Django,
Đồng HTML).Tìm hiểu về giao diện, viết code , làm slide.

3 Hoàng Văn B21DCCN051 Phân tích bài tập lớn, tìm hiểu lý thuyết (Django,
Minh Hiếu HTML).Tìm hiểu về giao diện, viết code, làm báo cáo
phần lý thuyết và giao diện.

4 Nguyễn Văn B21DCCN615 Phân tích bài tập lớn, tìm hiểu lý thuyết (Django,
Quân HTML).Tìm hiểu về chức năng, viết code , thuyết trình.
LỜI CẢM ƠN

Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép chúng em được bày tỏ lòng
biết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ chúng em trong
suốt quá trình học tập và nghiên cứu đề tài này. Trong suốt thời gian từ khi bắt đầu học
tập tại trường đến nay, chúng em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý
Thầy Cô và bạn bè.

Với lòng biết ơn sâu sắc nhất, chúng em xin gửi đến quý Thầy Cô ở Khoa CNTT đặc biệt
là thầy đã truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập
vừa qua. Nhờ có những lời hướng dẫn, dạy bảo của các thầy cô nên đề tài nghiên cứu của
chúng em mới có thể hoàn thiện tốt.

Bài báo cáo thực tập thực hiện trong khoảng thời gian gần 4 tuần. Bước đầu đi vào thực
tế của chúng em còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi những thiếu sót,
chúng em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô để kiến
thức của chúng em trong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện bổ
sung, nâng cao ý thức của mình.

Chúng em xin chân thành cảm ơn!


NHẬN XÉT

(Của giảng viên hướng dẫn)

Điểm:

Nhận xét đánh giá:...........................................................................................................


...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
CHƯƠNG I : CƠ SỞ LÝ THUYẾT
I. Tổng quan về Django
1. Django là gì?
1.1. Khái niệm
 Django là loại framework cấp cao được viết bằng Python, được thiết kế để đáp
ứng nhu cầu phát triển các website an toàn và dễ bảo trì. Bởi vì Framework này
được xây dựng bởi các nhà phát triển có kinh nghiệm nên nó có khả năng xử lý
hầu hết những phần phức tạp của việc phát triển web. Do đó, bạn có thể tập trung
vào việc viết app mà không cần phải dừng lại để kiểm tra.
 Lý do khiến Django phổ biến là bởi framework này sở hữu một cộng đồng rất lớn.
Thậm chí, họ đã xây dựng một trang web riêng biệt dành cho Django, nơi các nhà
phát triển có thể đóng góp các Package của bên thứ ba, bao gồm xác thực, ủy
quyền, hệ thống CMS chính thức được hỗ trợ bởi Django, tiện ích bổ sung thương
mại điện tử,…
1.2. Tính chất
 Sử dụng ngôn ngữ Python
o Python được cho là một trong những ngôn ngữ lập trình dễ học nhất vì cấu
trúc khá đơn giản và cú pháp dễ dàng. Ngôn ngữ này rất linh hoạt để phát
triển các trang web, ứng dụng PC và ứng dụng di động được nhúng trong
nhiều thiết bị.
 Độ hoàn thành cao:
o Django cung cấp hầu hết mọi thứ mà các developer có thể muốn để phát
triển web theo hướng mình muốn.
o Tất cả các phần trong framework hoạt động liền mạch với nhau, tuân theo
một nguyên tắc thiết kế nhất quán và có tài liệu để bạn tham khảo.
o Nhờ đó, bạn có thể vừa phát triển web theo phong cách riêng, vừa tiết kiệm
được thời gian
 Linh hoạt:
o Django có thể sử dụng để xây dựng hầu hết mọi loại trang web- từ hệ thống
quản lý nội dung (như wiki), cho đến các trang mạng xã hội, tin tức.
o Nó có thể hoạt động cùng với các framework bên ngoài và cũng có thể
cung cấp nội dung ở hầu hết mọi định dạng (bao gồm HTML, RSS feeds,
JSON, XML,..v..v..).
o Framework này còn cung cấp các tùy chọn khác nhau cho hầu hết các chức
năng (như công cụ tạo template, cơ sở dữ liệu phổ biến,..).
 Bảo mật:
o Django giúp developer tránh được nhiều lỗi bảo mật phổ biến bằng cách
cung cấp framework có khả năng tự bảo vệ trang.
o Ví dụ: Django cung cấp một giải pháp an toàn để quản lý tài khoản người
dùng và mật khẩu (password), tránh những lỗi phổ biến như đưa thông tin
phiên vào ở nơi dễ bị tấn công như cookie (thay vào đó cookie chỉ chứa key
còn dữ liệu thực tế được lưu trữ trong database) hoặc trực tiếp lưu trữ
password chứ không phải lưu trữ password hash.
o Django còn bảo vệ website khỏi những lỗ hổng khỏi những loại tấn công
mạng như: tấn công SQL injection, Cross-site Scripting, cross-site request
forgery và clickjacking.
 Khả năng mở rộng:
o Django sử dụng kiến trúc thành phần riêng nên bạn có thể mở rộng quy mô
bằng cách thêm phần cứng vào các cấp độ (máy chủ bộ nhớ đệm, máy chủ
cơ sở dữ liệu hoặc máy chủ ứng dụng).
o Instagram là ví dụ rõ ràng nhất cho khả năng mở rộng này.
 Khả năng duy trì:
o Code của Django được viết bằng cách sử dụng các nguyên tắc và mẫu thiết
kế khuyến khích việc tạo mã có thể bảo trì và tái sử dụng.
o Nó còn thúc đẩy việc nhóm các chức năng liên quan thành các “ứng dụng”
có thể tái sử dụng, từ đó giúp website có khả năng duy trì cao hơn.

2. Sự phổ biến của Django


 Thực sự chưa có một bài thống kê cụ thể về sự phố biến các framework. Việc đánh
giá hiện nay dựa vào số lượng các web phổ biến dùng Django, số lượng người
đóng góp codebase, và số lượng người phát triển cả tình nguyện lẫn được trả công.
Thì có thể cho rằng Django là framework phổ biến.
 Các trang web phổ biến sử dụng Django: Disqus, Instagram, Knight Foundation,
MacArthur Foundation, Mozilla, National Geographic, Open Knowledge
Foundation, Pinterest, and Open Stack

3. Những ưu điểm và hạn chế của Django


3.1. Ưu điểm của Django
 Django đơn giản và nhanh chóng
Một trong những mục tiêu chính của Django là đơn giản hóa công việc cho developer. Để
làm điều đó, Django framework sử dụng:
o Nguyên tắc phát triển nhanh chóng: tức là các nhà phát triển có thể thực hiện
nhiều iteration một lúc thay vì phải bắt đầu lại từ đầu.
o Nguyên lý DRY (Don’t Repeat Yourself – không lặp lại): có nghĩa là các nhà phát
triển có thể tái sử dụng các đoạn code hiện có và tập trung vào nó.
Các đoạn mã trùng lặp không cần thiết sẽ được framework này loại bỏ, từ đó giảm số
lượng code. Nhờ đó, bạn sẽ tiết kiệm được nhiều thời gian hơn.

 Bảo mật
o Bảo mật cũng là ưu tiên hàng đầu của Django. Nó là một trong những
framework có hệ thống bảo mật tốt nhất hiện nay.
o Nhờ hệ thống đó, các nhà phát triển có thể tránh các vấn đề về bảo mật phổ
biến như: Clickjacking; Cross-site scripting; Cross-site request forgery;
SQL injection.
o Framework này còn thường xuyên phát hành các bản vá bảo mật. Django
được xem là framework đi đầu trong việc phản hồi các lỗ hổng bảo mật và
cách báo các framework khác.
 Phù hợp với mọi dự án website
3.2. Hạn chế của Django
 Mặc dù Django là có những ưu điểm nổi trội nhưng cũng có những điểm hạn chế:
o Chỉ định URL bằng quy tắc biểu thức khó thực hiện (đặc biệt với người
mới) và làm cho dự án nhỏ trở nên phức tạp.
Thay vì sử dụng quy tắc biểu thức phức tạp để định nghĩa các URL (đường
dẫn) trong ứng dụng Django, điều này có thể làm cho quá trình này trở nên
khó khăn, đặc biệt đối với những người mới bắt đầu. Điều này có thể làm
cho dự án nhỏ trở nên phức tạp hơn cần thiết.
o Lỗi có thể rất khó để phát hiện và không thể hiểu được từ thông báo lỗi.
Trong quá trình phát triển, khi có lỗi xảy ra, thông điệp lỗi thường không rõ
ràng, dẫn đến việc tốn thời gian trong việc xác định nguyên nhân lỗi hoặc tệ
hơn nữa, bạn có thể không biết lỗi đến từ đâu hoặc không biết ứng dụng của
bạn gặp vấn đề gì.
o Django có một cấu trúc quy tắc cố định, và việc tuân theo cấu trúc này rất
quan trọng.
Django có một cấu trúc và quy tắc cố định mà bạn cần tuân theo khi phát
triển ứng dụng. Việc này giúp đảm bảo tính ổn định và dễ quản lý của dự án
và là một phần quan trọng để làm cho việc sử dụng Django hiệu quả.
3.3. Lý do sử dụng Django cho dự án Web bán hàng:
 Bởi vì:
o Django có nhiều tính năng bổ sung và có thể mở rộng. Bạn có thể tạo các
ứng dụng xử lý lưu lượng truy cập lớn hoặc khối lượng lớn thông tin thông
qua Django.

o Django đa nền tảng (cross-platform). Bạn có thể chạy dự án trên Mac,


Linux hoặc PC đều được.
o Django hoạt động với hầu hết các database chính và cho phép sử dụng cơ
sở dữ liệu khác nhau tùy thuộc vào dự án. Thậm chí, bạn có thể sử dụng
nhiều cơ sở dữ liệu cùng lúc.

Chương II : Phát triển chức năng cho website bán hàng

I. Phát triển chức năng tự động gửi thông báo đặt hàng thành công về email
của khách hàng
1. Mục tiêu
Mục tiêu của việc phát triển chức năng gửi thông báo qua email cho website bán
hàng bằng Django là để giúp website có thể tự động gửi thông báo cho khách hàng về các
hoạt động mua sắm của họ. Điều này sẽ giúp khách hàng nắm được tình trạng đơn hàng
của mình, đồng thời giúp nhà bán hàng tăng cường tương tác với khách hàng và chăm sóc
khách hàng tốt hơn.
2. Triển khai chức năng
Chức năng gửi thông báo qua email cho website bán hàng bằng Django sẽ được triển khai
theo các bước sau:

 Bước 1 : Tạo cơ sở dữ liệu lưu trữ thông tin khách hàng, bao gồm email và các
thông tin khác cần thiết để gửi thông báo.
 Bước 2 : Xây dựng API cho phép website có thể tự động gửi thông báo qua email
khi khách đặt hàng .
 Bước 3 : Phát triển giao diện cho phép khách hàng nhập email và gửi thông báo về
email đó .

3. Kết quả đạt được


Sau khi phát triển chức năng, nhà bán hàng đã đạt được các kết quả sau:

 Khách hàng có thể nắm được tình trạng đơn hàng của mình một cách nhanh chóng
và chính xác.
 Nhà bán hàng có thể tăng cường tương tác với khách hàng và chăm sóc khách
hàng tốt hơn.
 Doanh số bán hàng của nhà bán hàng tăng lên.

4. Code
4.1. Lưu trữ thông tin khách hàng và khởi tạo email.
4.2. Giao diện và HMTL.
a) Nhập thông tin và email
b) Hiển thị gửi email thành công
II. Phát triển chức năng tìm kiếm sản phẩm
1. Mục tiêu

 Mục tiêu của việc phát triển chức năng tìm kiếm sản phẩm cho website bán hàng
bằng Django là để giúp khách hàng có thể dễ dàng tìm kiếm sản phẩm theo nhu
cầu của mình. Điều này sẽ giúp khách hàng tiết kiệm thời gian và nâng cao trải
nghiệm mua sắm.

2 . Triển khai chức năng


Chức năng tìm kiếm sản phẩm cho website bán hàng bằng Django sẽ được triển khai theo
các bước sau:
 Bước 1 : Tạo truy vấn để tìm kiếm sản phẩm trong mô hình Product.
 Bước 2 : Tạo giao diện cho phép khách hàng tìm kiếm sản phẩm.

3. Kết quả đạt được


Sau khi phát triển chức năng tìm kiếm sản phẩm cho website bán hàng bằng Django, nhà
bán hàng đã đạt được các kết quả sau:

 Khách hàng có thể dễ dàng tìm kiếm sản phẩm theo nhu cầu của mình.
 Trải nghiệm mua sắm của khách hàng được cải thiện.
 Doanh số bán hàng của nhà bán hàng tăng lên.

4. Code
4.1. Tìm kiếm
4.2. Giao diện và HTML .
a) Nút search ở trang chủ và html
b) Trang tìm kiếm

III. Chức năng xóa sản phẩm đã chọn


1. Mục tiêu
Mục tiêu của việc phát triển chức năng xóa sản phẩm đã chọn trên trang web bán hàng
bằng Django là
 Giúp khách hàng có khả năng điều chỉnh lại giỏ hàng của họ theo sự thay đổi trong
nhu cầu mua sắm hoặc tài chính.
 Tạo điều kiện cho trải nghiệm mua sắm dễ dàng, thuận tiện, thúc đẩy sự hài lòng
và tăng khả năng khách hàng quay lại mua sắm thêm.
 Giúp tiết kiệm thời gian, khách hàng không cần phải xoá hết cả giỏ hàng mà chỉ
cần xóa những sản phẩm không muốn mua.
2 . Triển khai chức năng
Chức năng xóa sản phẩm đã chọn cho website bán hàng bằng Django sẽ được triển khai
theo các bước sau:

Bước 1 : Tạo truy vấn để xóa sản phẩm khỏi mô hình Cart

Bước 2 : Tạo giao diện cho phép khách hàng xóa sản phẩm đã chọn.
3. Kết quả đạt được
Sau khi phát triển chức năng xóa sản phẩm đã chọn cho website bán hàng bằng Django,
nhà bán hàng đã đạt được các kết quả sau:

 Khách hàng có thể dễ dàng xóa đi những sản phẩm không muốn mua.
 Khách hàng có thể xem lại những sản phẩm đã chọn trong giỏ hàng và tổng giá trị
của cả giỏ hàng.
 Trải nghiệm mua sắm của khách hàng được cải thiện.
 Tiết kiệm thời gian và thao tác khi mua sắm.
 Doanh số bán hàng của nhà bán hàng tăng lên.

4. Code
4.1. Chức năng xoá các sản phẩm đã chọn
4.2. Nút remove trong giỏ hàng và HTML .
IV. Hiển thị số lượng sản phẩm ở mỗi mục sản phẩm
1. Mục tiêu
Mục tiêu của việc phát triển chức năng hiển thị số lượng sản phẩm ở mỗi mục sản phẩm
là cho website bán hàng bằng Django là :

 Giúp nhanh chóng xác định số lượng sản phẩm có sẵn trong mỗi mục và tìm kiếm
chính xác sản phẩm họ quan tâm.
 Số lượng sản phẩm hiển thị có thể giúp người mua so sánh sự đa dạng và đưa ra
lựa chọn tốt nhất.
 Tối ưu hóa trải nghiệm mua sắm giúp người mua có cái nhìn tổng quan và tăng
khả năng mua hàng

2. Triển khai chức năng


Chức năng hiển thị số lượng sản phẩm ở mỗi mục sản phẩm cho website bán hàng bằng
Django sẽ được triển khai theo các bước sau:

Bước 1 : Tạo truy vấn để lấy số lượng sản phẩm hiện có trong kho.
Bước 2 : Tạo giao diện để hiển thị số lượng sản phẩm.

3. Kết quả đạt được


Sau khi phát triển chức năng, nhà bán hàng đã đạt được các kết quả sau:

 Khách hàng có cái nhìn rõ ràng hơn về sự đa dạng và số sản phẩm trong từng mục,
tăng khả năng chọn mua thông minh.
 Nâng cao trả nhiệm mua sắm giúp khách hàng có thể tìm kiếm so sánh sản sản
phẩm dễ hơn.
 Giúp nhà bán hàng có thể dự trù và quản lý tồn kho tốt hơn tránh trường hợp hết
hàng.
 Tăng hiệu suất bán hàng, giúp nhà bán hàng quản lý tốt hơn và cung cấp sản phẩm
phù hợp hơn với nhu cầu của thị trường.

4. Code
4.1 Tạo hàm đếm sản phẩm .
4.2. Giao diện và HTML.
V. Hiển thị thông tin liên hệ (Footer)
1. Mục tiêu
Mục tiêu của phần footer chứa thông tin liên hệ là :
 Cung cấp thông tin liên hệ bao gồm địa chỉ, địa chỉ email và số điện thoại
 Giúp liên kết đối tác và hợp tác
2. Giao diện web
CHƯƠNG III: KẾT LUẬN
I. Các nội dung đã đạt được.
- Xây dựng được một website tương đối hoàn chỉnh về giao diện.

- Nắm được kiến thức cơ bản để xây dựng giao diện web (Front End).

- Rèn luyện kỹ năng xây dựng giao diện web với HTML, CSS, JAVASCRIPT.

- Vận dụng các thư viện để xây dựng giao diện và lập trình front end.

II. Các nội dung cần cải tiến.

- Do thời gian nghiên cứu có hạn nên bài tập này chưa được hoàn chỉnh.

- Chưa tối ưu được code.

- Website nhỏ, còn mang tính chất mô phỏng

III. Hướng phát triển.

- Cần hoàn thiện và bổ sung thêm nhiều chức năng.

- Cập nhật trang quản trị chi tiết hơn.

- Nâng cấp giao diện, phát triển sâu hơn về back-end.

- Phân quyền và quản trị tối ưu hơn.

- Xây dựng website hoàn chỉnh.


Phụ lục
*Tài liệu tham khảo:

www.w3schools.com

itlovedesign.blogspot.com

websitechuyennghiep.vn

sharecode.vn

codepen.io

responsive-admin-dashboard-template-huykira.net

*Link code:

https://github.com/nq203/projectDjango

You might also like