Trên thực tế, Python không chỉ là một ngôn ngữ lập trình thông thường, mà cònlà một ngôn ngữ được sử dụng rộng rãi trong các lĩnh vực như khoa học dữ liệu, trítuệ nhân tạo, phát triển we
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN NGÔN NGỮ LẬP TRÌNH PYTHON
ĐỀ
Giảng viên hướng dẫn : TRẦN THỊ MINH THU
Hà Nội, tháng 11 năm 2023
Trang 2PHIẾU CHẤM ĐIỂM
Sinh viên thực hiện
Trang 3CHƯƠNG 1: TỔNG QUAN VỀ PYTHON 6
1.1Giới thiệu 6
1.2 Các tính năng của Python 7
1.3 Tại sao lại là Python? 8
1.4 Cài đặt Python? 10
1.5 Các Khái Niệm Cơ Bản Trong Lập Trình Python 10
1.6 Cấu trúc dữ liệu là gì, các kiểu cấu trúc dữ liệu trong python 12
1.7 Cấu trúc điều khiển trong python 13
1.7.1 Lệnh if 14
1.7.2 Lệnh for 15
1.7.3 Lệnh while 16
1.8 Cấu trúc dữ liệu là gì, các kiểu cấu trúc dữ liệu trong python 17
1.8.2 Các thông số của Hàm (Function Parameters) 17
1.8.3 Câu lệnh return trong Python 18
1.8.4 DocStrings trong Python 19
CHƯƠNG 2: GIỚI THIỆU ĐỀ TÀI 20
2.1 Lý do chọn đề tài 20
2.2 Giới thiệu về đề tài 20
CHƯƠNG 3: DEMO VÀ GIỚI THIỆU VỀ DJANGO 21
3.1 Tổng quan về Django 21
Những lợi thế của Django: 21
Sự phổ biến của Django 22
Cách đặt thư viện Django 22
3.2 Quản lý thư viện dùng trong Project 23
3.2.1 Cách cấu hình dự án và cách hoạt động nhóm 24
2.2.2 Giao diện tổng quát và một số chức năng chính 29
3.3 Mô Hình MVC: 34
Trang 43.3.1 Django là gì ? 35
3.3.2 Lập trình web với Django: 36
3.3.3 Tại sao phải sử dụng Django? 36
3.3.4 Một số yêu cầu về cấu hình máy 37
3.3.5 MVC trong Project 38
3.4 User Registation and Login Authentication – Đăng ký người dùng và xác thực đăng nhập: 44
3.5 Password Change and Edit Infor Account– Đổi mật khẩu tài khoản và chỉnh sửa thông tin tài khoản: 50
3.6 Profile Page and Edit Profile Page– Trang cá nhân và trang chỉnh sửa trang cá nhân 54
3.7 Model trong Django 59
3.7.1 Lý thuyết về Model trong Django 59
3.7.2 Áp dụng vào Project 62
3.8 Trang Admin trong Django 64
3.8.1 Tìm hiểu cơ bản về hệ thống Admin trong Django 64
3.8.2 Áp dụng Admin vào Project 67
KẾT LUẬN 73
DANH MỤC TÀI LIỆU THAM KHẢO 73
Trang 5Trên thực tế, Python không chỉ là một ngôn ngữ lập trình thông thường, mà còn
là một ngôn ngữ được sử dụng rộng rãi trong các lĩnh vực như khoa học dữ liệu, trítuệ nhân tạo, phát triển web, và nhiều lĩnh vực khác Sự phổ biến của Python khôngchỉ đến từ tính đơn giản và dễ hiểu, mà còn từ hệ sinh thái mạnh mẽ xung quanh nó,bao gồm các thư viện và framework mạnh mẽ
Trong báo cáo này, chúng ta sẽ khám phá sâu hơn về ngôn ngữ lập trình Python
và những ưu điểm mà nó mang lại Chúng ta sẽ tìm hiểu về cú pháp dễ đọc và dễ viếtcủa Python, cùng với những tính năng và công cụ hỗ trợ tuyệt vời Chúng ta cũng sẽxem xét một số ứng dụng thực tế của Python trong các lĩnh vực khác nhau, từ xử lý dữliệu đến phát triển phần mềm và trí tuệ nhân tạo
Hy vọng rằng báo cáo này sẽ giúp bạn hiểu rõ hơn về sức mạnh và tiềm năngcủa Python, và cung cấp cho bạn cái nhìn tổng quan về ngôn ngữ lập trình này Hãycùng bắt đầu cuộc hành trình khám phá Python và khám phá tất cả những gì nó có thểmang lại cho chúng ta
Trang 6CHƯƠNG 1: TỔNG QUAN VỀ PYTHON
1.1Giới thiệu
Lịch sử hình thành
Python đã được hình thành vào cuối những năm 1980 và được bắt đầu thựchiện vào tháng 12/1989 bởi Guido van Rossum tại CWI tại Hà Lan như là người kếthừa của ngôn ngữ ABC (tự lấy cảm hứng từ SETL) có khả năng xử lý ngoại lệ vàgiao tiếp với hệ điều hành Amoeba Van Rossum là tác giả chính của Python, vàvai trò trung tâm của ông tiếp tục trong việc quyết định hướng phát triển củaPython được phản ánh trong tiêu đề mà cộng đồng Python dành cho ông “Độc tàinhân từ cho cuộc sống” (benevolent dictator for life) (BDFL)
Python 2.0 được phát hành vào ngày 16/10/2000, với nhiều tính năng chínhmới bao gồm một bộ dọn rác đầy đủ và hỗ trợ Unicode Với phiên bản này, quátrình phát triển đã được thay đổi và trở thành minh bạch hơn và được cộng đồngủng hộ
Trang 7Python 3.0 (còn được gọi là Python 3000 hoặc Py3k), một bản phát hànhlớn, không tương thích ngược, được phát hành vào ngày 03/12/2008 sau một thờigian dài thử nghiệm Nhiều trong số các tính năng chính của nó đã được điều chỉnh
để tương thích ngược với Python 2.6 và 2.7 Các tính năng và triết lý phát triểnPython là 1 ngôn ngữ lập trình đa hình: lập trình hướng đối tượng và hướng cấutrúc được hỗ trợ đầy đủ, và có 1 số tính năng của ngôn ngữ hỗ trợ lập trình theochức năng và lập trình hướng khía cạnh (Aspect-oriented programming) Nhiều môhình khác được hỗ trợ bằng việc sử dụng các phần mở rộng, bao gồm thiết kế theohợp đồng (design by contract) và lập trình luận lý
Các trang như Mozilla, Reddit, Instagram và PBS đều được viết bằngPython Ngôn ngữ lập trình Python được dùng vào các mục đích:
Phát triển web (trên máy chủ)
Phát triển phần mềm 17
Tính toán một cách khoa học
Lên kịch bản cho hệ thống
1.2 Các tính năng của Python
Phân tích dữ liệu và học máy với mã Python
Với lượng dữ liệu ngày càng tăng mà chúng ta có ngày nay, điều quan trọng
là phải sử dụng nó trong quá trình ra quyết định Với công nghệ máy học và phântích dữ liệu, chúng ta có thể đạt được mục đích này Bạn sẽ thích thú khi biết rằngngôn ngữ lập trình Python là động lực đằng sau việc thu thập, tổ chức và thao tác
dữ liệu này
Phát triển web và phát triển phần mềm
Ngôn ngữ Python cũng giúp phát triển web và phát triển phần mềm Nó hỗtrợ nhiều khung như Pyramid, Django và Flask Các khung này đã góp phần tạo racác trang web nổi tiếng như Spotify, Reddit và Mozilla Với quản lý nội dung, ủy
Trang 8quyền và truy cập cơ sở dữ liệu, các phiên bản khác nhau của ngôn ngữ lập trình Python là ngôn ngữ hàng đầu để phát triển web
Tự động hóa hoặc viết kịch bản bằng mã Python
Tạo mã để hoàn thành các tác vụ tự động được gọi là viết kịch bản Bạn cóthể sử dụng Python cho mục đích này Việc sử dụng kịch bản thường được thựchiện trong các công việc lặp đi lặp lại Mã Python có thể giúp bạn tự động hóa quytrình Nó giúp tiết kiệm thời gian, tài nguyên và công sức thủ công
Kiểm thử phần mềm và tạo nguyên mẫu
Theo dõi lỗi, kiểm soát tòa nhà, phát triển web, phát triển phần mềm vàkiểm tra phần mềm là những khía cạnh quan trọng mà Python có thể xử lý Với mãPython để giải cứu bạn, thời gian cần thiết cho tất cả các hoạt động này có thểđược giảm xuống mức tối thiểu, do đó cho phép bạn tập trung vào những gì cầnthiết
1.3 Tại sao lại là Python?
Tại sao bạn nên sử dụng mã Python khi chúng ta có nhiều ngôn ngữ lập trìnhphổ biến khác? Đây là những lý do:
Dễ học
Python rất đơn giản và dễ học Cú pháp rõ ràng và sự phụ thuộc vào ngônngữ tiếng Anh khiến nó trở nên dễ hiểu Do đó, việc áp dụng nó để thực hiện cáctác vụ khác nhau như phát triển phần mềm trở nên tương đối đơn giản hơn
Cung cấp hỗ trợ cộng đồng tích cực
Không giống như các ngôn ngữ khác, bạn có thể tìm thấy cộng đồng hỗ trợtích cực cho ngôn ngữ Python Vì vậy, trong quá trình phát triển phần mềm củagiai đoạn tự động hóa, nếu bạn phát hiện ra một số vấn đề, bạn có thể lên diễn đàn
và tìm kiếm sự trợ giúp chuyên nghiệp Sự hiện diện của một cộng đồng như vậyđảm bảo bạn tìm thấy câu hỏi cho tất cả các vấn đề của mình liên quan đến Python
Cung cấp môi trường linh hoạt
Với mã Python, bạn không phải giới hạn bản thân trong một trường cụ thể
Trang 9Nó được mô tả là một trong những ngôn ngữ lập trình có mục đích chung có thểđược sử dụng trong phát triển web, phát triển phần mềm hoặc giải pháp tự động,bất kể mức độ phức tạp hoặc miền.
Nhiều thư viện và khung có sẵn
Theo thời gian, Python Software Foundation đã phát triển nhiều thư viện vàkhung, bao gồm nhưng không giới hạn ở NumPy và SciPy, Django Với sự trợgiúp của các thư viện ngôn ngữ lập trình này, bạn không cần phải bắt đầu quá trìnhviết mã từ đầu để phát triển phần mềm, do đó cho phép bạn tiết kiệm thời gian
Nền tảng phần mềm Python giúp ích trong các công nghệ phức tạp
Sau khi học mã Python, bạn có thể mong đợi các công nghệ phức tạp trở nên
dễ dàng hơn một chút Có thể dễ dàng quản lý các nhiệm vụ như tự động hóa đòihỏi nhiều thời gian và kiến thức chuyên môn thông qua một trong những ngôn ngữlập trình Python tốt nhất
Cú pháp mã Python và ngữ nghĩa
Cú pháp Python đề cập đến các quy tắc lập trình dựa trên đó ngôn ngữ sẽđược viết và giải thích, trong khi ngữ nghĩa là ý nghĩa của các câu lệnh được viết.Đối với Python, các quy định và hàm ý đơn giản hơn so với các ngôn ngữ lập trìnhphổ biến khác
Sử dụng ngôn ngữ có thể đọc được trong cú pháp cho phép các nhà pháttriển hiểu nó rõ ràng và đảm bảo rằng những người mới bắt đầu có thể diễn giảingôn ngữ lập trình và mã dễ dàng hơn Bên cạnh đó, sự hiện diện của khoảng trắngtrong phần thụt đầu dòng của ngữ nghĩa Python và hạn chế chỉ cung cấp một cáchduy nhất để thực hiện một tác vụ cụ thể giúp giảm khả năng nhầm lẫn Vì nền tảngphần mềm Python là một trong những ngôn ngữ lập trình có mục đích chung, cácnhà phát triển đã giữ cho nó toàn diện và đơn giản để mọi người sử dụng
Môi trường phát triển phần mềm tích hợp Python
Các nền tảng ngôn ngữ lập trình hoặc môi trường phát triển phần mềm nàycho phép các lập trình viên có các công cụ toàn diện để phát triển các phần mềm và
Trang 10ứng dụng khác nhau Khung Python cơ bản đã được thiết lập giúp các nhà pháttriển và những người không phải là nhà phát triển dễ dàng tùy chỉnh hoặc tạo mộtứng dụng, dịch vụ hoặc sản phẩm kỹ thuật số mới.
1.5 Các Khái Niệm Cơ Bản Trong Lập Trình Python
Comments trong python
Trong Python bất kỳ văn bản nào ở bên phải biểu tượng # thì sẽ được trình biên dịch hiểu là một comment và không biên dịch phần đó
Trang 11Hình 1.5-1 Comment trong python
Sử dụng càng nhiều comment hữu ích trong chương trình của bạn sẽ làm chocông việc lập trình của bạn dễ dàng hơn: Giải thích các giả định Giải thích cácquyết định quan trọng Giải thích chi tiết quan trọng Giải thích vấn đề bạn đang cốgắng giải quyết Giải thích các vấn đề đang cố gắng khắc phục trong chương trìnhcủa mình, v.v
Hằng số (Literal Constants):
Ví dụ về một hằng số theo nghĩa đen là một số như 5, 1 23 hoặc một chuỗinhư ‘python’hay “It’s a string!” Nó được gọi là nghĩa đen bởi vì sử dụng giá trịcủa nó theo nghĩa đen Số 2 luôn luôn đại diện cho chính nó và không có gì khác
và nó là một hằng số vì giá trị của nó không thể thay đổi Do đó, tất cả những giátrị này được gọi là hằng số
Đối tượng (Object):
Trang 12Python đề cập đến bất cứ điều gì được sử dụng trong một chương trình như
là một đối tượng
1.6 Cấu trúc dữ liệu là gì, các kiểu cấu trúc dữ liệu trong python.
Việc tổ chức, quản lý và lưu trữ dữ liệu rất quan trọng vì nó cho phép truycập dễ dàng hơn và sửa đổi hiệu quả Cấu trúc dữ liệu (Data Structure) cho phépbạn sắp xếp dữ liệu của mình theo cách cho phép bạn lưu trữ các bộ dữ liệu đượcthu thập, liên quan đến chúng và theo đó mà thực hiện các thao tác trên chúng.Python có hỗ trợ ngầm cho Cấu trúc dữ liệu cho phép lưu trữ và truy cập dữliệu Các cấu trúc này được gọi là List, Dictionary, Tuple và Set Python cho phépngười dùng tạo Cấu trúc dữ liệu của riêng họ, cho phép toàn quyền kiểm soát chứcnăng Các cấu trúc dữ liệu nổi bật nhất là Stack, Queue, Tree, Linked List, v.v.đồng thời cũng có sẵn trong các ngôn ngữ lập trình khác
Cấu trúc dữ liệu tích hợp (Built-in Data Structures).
Về cấu trúc dữ liệu trong Python, các Cấu trúc dữ liệu này được tích hợp sẵnvới Python giúp lập trình dễ dàng hơn và giúp các lập trình viên sử dụng chúng để
có được các giải pháp nhanh hơn Và có các kiểu cấu trúc dữ liệu là:
List: Được sử dụng để lưu trữ dữ liệu của các loại dữ liệu khác nhau một
cách tuần tự Có các địa chỉ được gán cho mọi thành phần của danh sách, được gọi
là Index Giá trị chỉ mục bắt đầu từ 0 và tiếp tục cho đến khi phần tử cuối cùngđược gọi là chỉ số dương
Dictionary: Được sử dụng để lưu trữ các cặp key-value Để hiểu rõ hơn, hãy
nghĩ đến một thư mục điện thoại nơi hàng trăm và hàng ngàn tên và số tương ứngcủa chúng đã được thêm vào Bây giờ các giá trị không đổi ở đây là Tên và Số điệnthoại được gọi là các phím Và các tên và số điện thoại khác nhau là các giá trị đã
23 được đưa vào các phím Nếu truy cập các giá trị của các phím, sẽ nhận được tất
Trang 13cả tên và số điện thoại Vì vậy, đó là những gì một cặp key-value Và trong Python,cấu trúc này được lưu trữ bằng Dictionary.
Set: Là một tập hợp các yếu tố không có thứ tự là duy nhất Có nghĩa là
ngay cả khi dữ liệu được lặp lại nhiều lần, nó sẽ chỉ được nhập vào tập hợp mộtlần
Tuple (các bộ dữ liệu): Tuples giống như các list với ngoại lệ là dữ liệu một
khi được nhập vào bộ dữ liệu không thể thay đổi bất kể điều gì Ngoại lệ duy nhất
là khi dữ liệu bên trong Tuple có thể thay đổi, chỉ sau đó dữ liệu Tuple có thể đượcthay đổi
Hình 1.6-1 so sánh list và tuple
1.7 Cấu trúc điều khiển trong python
Python luôn chạy một loạt các câu lệnh theo thứ tự từ trên xuống một cách chính xác Câu lệnh điều khiển là loại câu lệnh được dùng để điều khiển luồng chạy của các câu lệnh khác trong chương trình Điều này đạt được bằng cách sử dụng các câu lệnh điều khiển Có 3 lệnh kiếm soát cấu trúc điều khiển của Pythonlà: if, for và while
Trang 141.7.1 Lệnh if
Được sử dụng để kiểm tra một điều kiện: nếu điều kiện là đúng sẽ chạy một khối các câu lệnh (được gọi là if-block), nếu sai chương trình sẽ xử lý một khối cáccâu lệnh khác (được gọi là else-block )
Ví dụ: Cho một số nguyên cho trước, nhập vào một số nguyên khác và báo về cáckết quả Nếu thỏa mãn các điều kiện thì in ra các kết quả khác nhau
Hình 1.7-1 Ví dụ lệnh if trong bài toán
Kết quả cho thấy khi chúng ta nhập một số nguyên bất kì Nếu thỏa mãnđiều kiện bằng với số cho trước thì in ra “chính xác” Và kết quả khác khi điền vào
số lớn hoặc nhỏ hơn số cho trước
Kết quả:
Hình 1.7-2 kết quả ví dụ lệnh if
Trang 151.7.2 Lệnh for
Trang 16Câu lệnh for in là một câu lệnh lặp khác, nó lặp đi lặp lại qua một chuỗi(sequences) các đối tượng tức là đi qua từng mục trong một chuỗi Chúng ta sẽ tìm
25 hiểu nhiều hơn về sequences trong bài về cấu trúc dữ liệu trong Python sau.Những gì bạn cần biết ngay bây giờ là một chuỗi trình từ chỉ là một tập hợp cácitems Ví dụ :
Hình 1.7-3 ví dụ lệnh for
Kết quả Vòng lặp for trong Python hoàn toàn khác với vòng lặp trong C / C++ vòng lặp for trong Python tương tự như vòng lặp foreach trong C# Trong C / C++, nếu bạn muốn viết for(int i = 0; i < 5; i++), thì trong python bạn chỉ cần viếtforo in range(0, 5) Vòng lặp for đơn giản hơn, biểu cảm hơn và ít bị lỗi hơn trongPython
Hình 1.7-4 kết quả ví dụ lệnh for
Trang 171.7.3 Lệnh while
Trong Python: Câu lệnh while cho phép liên tục thực thi một khối các câulệnh miễn là điều kiện là đúng Một câu lệnh while là một ví dụ về cái được gọi làcâu lệnh lặp Một câu lệnh while có thể có một mệnh đề khác tùy chọn
Ví dụ nhập vào một số nguyên sao cho thỏa mãn các điều kiện cho trước, sau khithỏa mãn một khối các lệnh thì in ra kết quả “Hoàn thành”
Kết quả:
Hình 1.7-5 Ví dụ lệnh while
Hình 1.7-6 kết quả ví dụ lệnh while
Trang 181.8 Cấu trúc dữ liệu là gì, các kiểu cấu trúc dữ liệu trong python.
Hình 1.9-1 Ví dụ về hàm
1.8.2 Các thông số của Hàm (Function Parameters)
Một hàm có thể lấy tham số, là các giá trị bạn cung cấp cho hàm để hàm cóthể sử dụng các giá trị đó cho một mục đích cụ thể Các tham số này giống như cácbiến ngoại, trừ các giá trị của các biến này được xác định khi chúng ta gọi hàm và
đã được gán các giá trị khi hàm chạy Các tham số được chỉ định trong cặp dấungoặc trong khai báo hàm, được phân tách bằng dấu phẩy Khi chúng ta gọi hàm,chúng ta cung cấp các giá trị theo cùng một cách Lưu ý thuật ngữ được sử dụng –
Trang 19các tên được đưa ra trong định nghĩa hàm được gọi là tham số trong khi các giá trị bạn cung cấp trong lệnh gọi hàm được gọi là đối số.
Kết quả :
Hình 1.9-4 kết quả ví dụ hàm Function parameters
1.8.3 Câu lệnh return trong Python
Lệnh return thường được dùng để thoát hàm và trở về nơi mà tại đó hàmđược gọi Lệnh này có thể chứa biểu thức được tính toán và giá trị trả về Nếukhông có biểu thức nào trong câu lệnh hoặc không có lệnh return trong hàm thìhàm sẽ trả về None Lệnh return dùng để trả về một giá trị (hoặc một biểu thức),hoặc đơn giản 32 là trả về "không gì cả" Khi lệnh return được thực thi, hàm sẽ kếtthúc return là lệnh không bắt buộc phải có trong thân hàm
Trang 201.8.4 DocStrings trong Python
Chuỗi đầu tiên ngay sau tiêu đề hàm được gọi là docstring (documentationstring), nó được dùng để giải thích chức năng cho hàm Mặc dù docstring là khôngbắt buộc, nhưng việc giải thích ngắn gọn về chức năng của hàm sẽ giúp ngườidùng sau khi gọi hàm có thể hiểu ngay hàm sẽ làm gì mà không cần phải tìm lạiđịnh nghĩa hàm để xem xét Việc thêm tài liệu cho code giúp sau khi quay trở lại
có thể nhớ
Trang 21CHƯƠNG 2: GIỚI THIỆU ĐỀ TÀI
2.1 Lý do chọn đề tài
Nhận thấy được sự phát triển và phổ biến của các thiết bị thông minh như máytính , máy tính bảng, điện thoại thông minh, nhu cầu đọc truyện rất lớn của các độcgiả và đặc biệt giá thành để sở hữu được một bộ truyện tranh có chấp lượng là không
hề nhỏ nên chúng tôi đã chọn hướng đi là lập trình một wedsite đọc truyện onlinemiễn phí
2.2 Giới thiệu về đề tài
Công nghệ thông tin (CNTT) ngày càng có vai trò quan trọng trong cuộc sốnghàng ngày của chúng ta.Việc ứng dụng công nghệ thông tin vào các lĩnh vực trong đờisống giúp công việc được tiến hành nhanh chóng và hiệu quả hơn.Có rất nhiều côngviệc mới phát triển song song cùng với CNTT, một trong số đó là lập trình wed, mộthướng đi dịch vụ mang lại hiệu quả kinh tế rất lớn
Một ứng dụng của lập trình wed khá phổ biến là wedsite đọc truyện và đó là đềtài của chúng tôi tiến hành.Ở đề tài này chúng tôi sẽ tạo ra một wedsite đọc truyệnonline miễn phí.Tại đây người dùng sẽ tiếp cận được nhiều thể loại truyện khác nhau
và thưởng thức bộ truyện mình quan tâm với nội dung, hình ảnh chất lượng
Với sự phát triển của công nghệ thông tin thì bây giờ chúng ta đã có rất nhiềucông nghệ để tạo ra một wedsite cho riêng mình, ví dụ như :JavaScrip,Python,PHP,C#,… Và ở đây chug em sẽ làm về ứng dụng DjangoFreamWork tạo wedapp.Các ưu điểm của Django như giao diện quản trị đơn giản, thưviện hỗ trợ đầy đủ, khả năng mở rộng, sẽ giúp cho đồ án dễ dàng và tốt hơn.Kết hợpvới kiến thức về cơ sở dữ liệu SQL chúng em sẽ tạo ra một wedsite đọc truyện đơngiản
Trang 22CHƯƠNG 3: DEMO VÀ GIỚI THIỆU VỀ DJANGO
3.1 Tổng quan về Django
Django là một framework bậc cao của Python có thể thúc đẩy việc phát triển phần
mềm thần tốc và clean, thiết kế thực dụng Được xây dựng bởi nhiều lập trình viênkinh nghiệm, Django tập trung lớn những vấn đề phát triển Web, bạn có thể phát triểntrang web của bạn mà không cần xây dựng từ những căn bản Đặc biệt
nó free và open source
Những lợi thế của Django:
Hoàn thiện: Django phát triển theo tư tưởng "Batteries included" (có thể hiểu
ý nghĩa là tích hợp toàn bộ, chỉ cần gọi ra mà dùng) Nó cung cấp mọi thứ chodeveloper không cần phải nghĩ phải dùng cái ngoài Chúng ta chỉ cần tập trungvào sản phẩm, tất cả đều hoạt động liền mạch với nhau
Đa năng: Django có thể được dùng để xây dựng hầu hết các loại website, từ hệ
thống quản lý nội dung, cho đến các trang mạng xã hội hay web tin tức Nó cóthể làm việc với framework client-side, và chuyển nội dung hầu hết cácloại format (HTML, RESS, JSON, XML, )
Bảo mật: Django giúp các developer trang các lỗi bảo mật thông thường bằng
cách cung cấp framework rằng có những kĩ thuật "phải làm như vậy" để bảo vệwebsite Ví dụ: Django cung cấp bảo mật quản lý tên tài khoản và mật khẩu,tránh các lỗi cơ bản như để thông tin session lên cookie, mã hóa mật khẩu thay
vì lưu thẳng
Dễ Scale: Django sử dụng kiến trúc shared-nothing dựa vào component (mỗiphần của kiến trúc sẽ độc lập với nhau, và có thể thay thế hoặc sửa đổi nếu cầnthiết) Có sự chia tách rõ ràng giữa các phần nghĩa là nó có thể scale cho việcgia tăng traffic bằng cách thêm phần cứng ở mỗi cấp độ: caching, servers,database servers, hoặc application servers Nhiều web về kinh doanh đã thànhcông khi Django được scale đáp ứng yêu cầu của họ
Dễ maintain: code Django được viết theo nguyên tắc thiết kế và pattern có thể
khuyến khích ý tưởng bảo trì và tái sử dụng code Trên thực tế, nó sự theo kháiniệm Don't Repeat Yourself làm cho không có sự lặp lại không cần thiết, giảmmột lượng code
Tính linh động: Django được viết bằng Python, nó có thể chạy đa nền tảng Nó có nghĩa rằng bạn không ràng buộc một platform server cụ thể.Django được hỗ trợ tốt ở nhiều nhà cung cấp hosting, họ sẽ cung cấp hạ tầng vàtài liệu cụ thể cho hosting web Django
Trang 23Sự 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 gía 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, KnightFoundation, MacArthur Foundation, Mozilla, National Geographic, Open KnowledgeFoundation, Pinterest, and Open Stack
Cách đặt thư viện Django
Ta sẽ cài đặt Django bằng trình lệnh pip của Python Bây giờ bạn
mở Terminal/CMD và gõ lệnh sau:
pip install Django
Trang 243.2 Quản lý thư viện dùng trong Project
Các thư viện trong dự án được lưu trong file requirements.txt để người sử dụngcũng như tham gia phát triển dự án có thể cài đặt một cách nhanh nhất có thể
file requirements.txt trong hệ thống thư mục gốc
Những thư viện được đặt trong file
Để thêm một thư viện vào file sau khi chúng ta cài đặt thì ta sẽ sử dụng lệnh pip
freeze > requirements.txt
Trang 25vd: Sau khi cài đặt thư viện mysqlClient để kết nối tới mysql ta sẽ chạy lệnh pipfreeze > requirements.txt để khi người dùng hoặc người phát triển clone về có thểnhận biết cũng như chạy lệnh pip install -r requirements.txt để load thư viện cần dùng
Chạy lệnh pip install -r requirements.txt để load thư viện
3.2.1 Cách cấu hình dự án và cách hoạt động nhóm
Với dự án này các thành viên sử dụng Github để hoạt động Trang github chính
thức của nhóm là https://github.com/hungskygaren
Vậy chúng ta cần tìm hiểu Github là gì?
GitHub là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự
án phần mềm Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sungnhững tính năng về social để các developer tương tác với nhau
Vài thông tin về GIT:
● Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán.Giúp đồng bộ source code của team lên 1 server
Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc (diff, checkmodifications, show history, merge source, …)
GitHub có 2 phiên bản: miễn phí và trả phí Với phiên bản có phí thường đượccác doanh nghiệp sử dụng để tăng khả năng quản lý team cũng như phân quyền bảomật dự án
Còn lại thì phần lớn chúng ta đều sử dụng Github với tài khoản miễn phí để lưutrữ source code
● Github cung cấp các tính năng social networking như feeds, followers, vànetwork graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch
sử commit
Nếu một comment để mô tả và giải thích một đoạn code Thì với Github,commit message chính là phần mô tả hành động mà bạn thực hiện trên source code
Trang 26Github trở thành một yếu tố có sức ảnh hưởng lớn trong cộng động nguồn mở.Cùng với Linkedin, Github được coi là một sự thay thế cho CV của bạn Các nhàtuyển dụng cũng rất hay tham khảo Github profile để hiểu về năng lực coding của ứngviên.
Cấu trúc thư mục sẽ tương tự như sau
Để khởi chạy chúng ta cần đọc theo hướng dẫn trong file README.md hoặc truy cậpvào link github chính đọc phần hướng dẫn
Trang 27Hướng dẫn chi tiết cài đặt sử dụng dự án
Sau khi hoàn thiện các bước trên chúng ta cần tạo một user admin(superuser) để sử
dụng trang admin bằng câu lệnh python manage.py createsuperuser
Các thao tác sử dụng github để phát triển dự án theo nhóm
Đối với mỗi thành viên sau khi clone từ github về cần phải tạo 1 nhánh branch để pháttriển Chúng ta để ý góc trái trong trình soạn thảo có biểu tượng github, chúng ta chọnvào và chọn phần tạo branch
Trang 28Hình ảnh giao diện tạo branch
Sau khi tạo xong branch chúng ta cần checkout ra branch mới vừa tạo để tiến hànhcode (mặc định branch sẽ là master)
Chúng ta checkout branch và tiến hành code
Sau khi hoàn thành xong từng phần chúng ta tiến hành commit và tạo push request
Để ý thanh công cụ bên phải ta sẽ thấy mục chọn commit, nhấn chọn commit ta sẽ mở
ra giao diện commit và push
Trang 29Giao diện phần commit
Ở giao diện này chúng ta chọn những file cần push lên sau đó chọn phần commit andpush
Một hộp thoại hiện ra chúng ta chọn push để tiến hành push lên github
Trang 30Để đồng bộ hóa với những người phát triển khác chúng ta cần pull lại từ github Để ýgóc phía trên màn hình ta thấy biểu tượng pull, khi click vào thì code trên github sẽđược đồng bộ trở lại máy người dùng.
2.2.2 Giao diện tổng quát và một số chức năng chính
Mỗi giao diện hiển thị sẽ tương ứng với 1 thư mục trong thư mục chính template(phần hiển thị)
Giao diện trang chủ
Phần giao diện trang chủ được quản lý bởi file HomeView.py HomeView trong thưmục controler
Trang 31Ở trong file này chúng ta sẽ tạo một số hàm để hiện thị ra giao diện và để chúng trongobject context Một số hàm cơ bản cần dùng cho giao diện trang chủ nhưgetNewView()
để lấy danh sách những truyện mới cập nhập
getNewView trả về danh sách truyện mới cập nhập
Tương tự ta có một số hàm như getTopView(), getNewChap(), getLoveView() đểcung cấp nội dung cho template hiển thị
Trang 32Tiếp sau ta sẽ tới phần giao diện của trang chủ
Trang 33Đây là giao diện chính thức của trang chủ
Phần giao diện được thiết kế bằng html5 + css và có sử dụng thêm bootstrap để chia
bố cục cũng như reponsive website để có thể sử dụng trên mọi thiết bị
Các trang hiển thị được dùng chung với 1 template chính nằm trong thư mục Base
File template Base được dùng để khởi tạo html cũng như include những thưviện js và css cần dùng
Trang 34Phần hiển thị của từng template sẽ được gọi lại thông qua thẻ block trongdjango Với mỗi url tương ứng hệ thống sẽ tự động nhúng code vào giữa 2 thẻ block
và andblock
Trong file template home chúng ta sẽ kế thừa lại template Base để tái sử dụnggiao diện chính bằng thẻ extends Thẻ load static được dùng để load hệ thống tàinguyên như file css, image, được chúng ta sử dụng
Ngoài code html chúng ta còn cần sử dụng một số thẻ trong django templatenhư if, for, để hiển thị được dữ liệu từ server gửi về
Ở đây ta sử dụng for để lặp tất cả các item trong mảng listTruyen
Trang 35Để hiển thị các thuộc tính dữ liệu ta cần phải bỏ trong cặp dấu {{}} để hệ thốngnhận diện và in ra dữ liệu lên màn hình
Ta sử dụng {{item.tentruyen}} để hiển thị thuộc tính tentruyen trong object item
Để hiển thị 1 hình ảnh từ hệ thống ta cần phải sử dụng thẻ {% static tênbiến %}
Để làm đẹp cho trang web chúng ta cần phải sử dụng một số thao tác với css.File home.css đảm nhận việc xử lý màu sắc cho trang web
3.3 Mô Hình MVC:
- MVC là viết tắt của 3 từ Model-View-Controller:
- Model: Là kiến trúc dữ liệu database, là nơi cung cấp các chức năng xử lý đếndatabase
- View: Là nơi hiển thị giao diện cho người dùng
- Controller: Nhiệm vụ nhận các request của người dùng, sau đó sẽ lấy dữ liệu từmodel và đưa sang cho view
Cách hoạt động mô hình MVC
Trang 36Khi người dùng gửi request lên server, nó sẽ vào controller, controller kiểm tra yêucầu người dùng muốn gì, nếu có yêu cầu dữ liệu thì controller sẽ thông qua data để lấy
Django mặc định đã áp dụng mô hình MVC ngay từ đâu, diễn đạt như sau:
- Models: Chính là Model trong MVC, đây chính là nơi ta thiết kế ra những table chodatabase, từ đó Django ORM đã cung cấp những phương thức xử lý, nghiệp vụ lêndatabase
- Template: Chính là View trong MVC, là những template ta thiết kế ra cho trangweb
- View: Đây là Controller trong MVC, trong view có các function xử lý khi córequest từ người dùng
Ở đoạn Code sau thể hiện cách hoạt động MVC Django:
Trang 37Hàm post nằm ở controller để xử lý các request người dùng
Dòng code 11: Chính là nơi tương tác controller với models
Dòng code 15: Thể hiện việc controller gửi data cho views views từ đây lo xử lý cáchhiển thị cho người dùng
Một số công ty hàng đầu sử dụng Django như Instagram, Spotify, Youtube, Dropbox,trình duyệt Mozilla, Disqus
3.3.2 Lập trình web với Django:
Django được xây dựng giúp phát triển website nhanh chóng với đầy đủ thư viện,module cần thiết Đặc biệt, thiết kế sạch sẽ, thiết thực và gọn gàng
Khả năng dễ đọc của Python, cùng với tính đơn giản, đầy đủ, cho phép lập trình viêntập trung vào các vấn đề phức tạp, logic nghiệp vụ cao mà không tốn thời gian chonhững rắc rối đã được người khác giải quyết
Django có mô hình xác thực người truy cập tuyệt vời, nhờ khả năng cấu hình user.Điều này khiến nó trở thành sự lựa chọn hàng đầu khi trang web, ứng dụng cần ưutiên về bảo mật
Ngoài ra, Django sở hữu khả năng mở rộng tốt, đáp ứng lượng traffic lớn và khôngcần lo lắng về khả năng scale sản phẩm của mình
Hơn nữa, khi xây dựng CMS, Ecommerce Website, Social Network đều có thể kếtnối linh hoạt với Django và không phụ thuộc lẫn nhau
3.3.3 Tại sao phải sử dụng Django?
Django có một số ưu điểm như sau:
- Nhanh: Django được thiết kế để giúp các nhà phát triển đưa các ứng dụng từ ýtưởng đến hoàn thành càng nhanh càng tốt…
- Có đầy đủ các thư viện/module cần thiết: Django chăm sóc xác thực người
dùng, quản lí, nội dung, bản đồ trang web,…
- Đảm bảo về tính bảo mật: không còn các nỗi lo về các lỗi bảo mật thông thường