CHƯƠNG 1: TỔNG QUAN 1. Lý do chọn đề tài Với sự phát triển của khoa học kỹ thuật ngày nay, con người đã đạt được những thành tựu mới trong tất cả các lĩnh vực. Đặc biệt là ngành công nghệ thông tin với việc tạo ra các phần mềm, những trang website hữu ích cho cuộc sống. Trong đó, những trang website đang ngày một phổ biến, chỉ với việc sử dụng Internet ta dễ dàng tiếp cận được các thông tin mà chúng ta chưa biết được, đó chính là cơ sở để nhóm quyết định xây dựng website để hướng đến người dùng một cách nhanh chóng hiệu quả.
Lịch sử là vô cùng quan trọng đối với một đất nước, vì đó là sự đấu tranh và phát triển của đất nước đó, giúp ta biết được gốc gác tổ tiên, các nhà khoa học, vĩ nhân, vị tướng,… Nhưng ở Việt Nam hiện nay có nhiều học sinh không thích học môn Lịch Sử dẫn đến hiện trạng “Lịch sử là môn có kết quả thi thấp nhất trong tất cả các môn thi của kỳ thi tốt nghiệp THPT năm 2021, khi có 52,03% số thí sinh có điểm thi dưới trung bình” (thống kê theo Bộ Giáo dục và Đào tạo). Hơn nữa học sinh thì bị nhiễu loạn thông tin khi tiếp thu kiến thức qua phim ảnh, trên mạng một cách thiếu chọn lọc. Chính điều đó dẫn học sinh đến hệ quả là học vẹt, học thuộc lòng nên không thể hệ thống hóa kiến thức và sự kiện Lịch sử. Mục tiêu Nhằm giúp học sinh dễ dàng tiếp cận và hứng thú học Lịch sử, đồng thời nâng cao năng lực tự học và sáng tạo của học sinh về bộ môn Lịch sử nhóm nghiên cứu đã “Thiết kế website tìm hiểu và kiểm tra kiến thức Lịch sử Việt Nam”.
Xây dựng website tra cứu thông tin lịch sử và kiểm tra lịch sử. Hệ thống hóa kiến thức lịch sử một cách trực quan, chính xác. Giúp học sinh dễ dàng tiếp cận và hứng thú với môn Lịch sử thông qua hình ảnh và video. Nâng cao năng lực và sáng tạo của học sinh.
Giải quyết tối ưu hóa thiết kế giao diện hiển thị nội dung cho người dùng, người tạo bài viết, người duyệt bài viết, quản trị trang website Lịch sử. Công nghệ sử dụng Xây dựng trang Lịch sử Việt Nam có các chức năng: trang nhân vật lịch sử, trang di tích lịch sử, trang phim truyện, sách, tính năng tìm kiếm, trang kiểm tra kiến thức lịch sử. Sử dụng công nghệ hỗ trợ cho thiết kế trang web: HTML, JavaScript, CSS, Python, Framework Django, Ckeditor. Trang 16 CHƯƠNG 2: CỞ SỞ LÝ THUYẾT 2.
Tổng quan Python là ngôn ngữ lập trình thông dịch (interpreted), hướng đối tượng (objectoriented) và là ngôn ngữ bậc cao (high-level) ngữ nghĩa động (dynamic semantics). Python hỗ trợ các module và gói packages), khuyến khích chương trình module hóa và tài sử dụng mã. Python được sáng tạo bởi Guido Van Rossum vào năm 1991. Python có nguồn gốc từ nhiều ngôn nhữ khác, bao gồm ABC, Modula-3, C, C+ +, Algol-68, SmallTalk và Unix shell và các ngôn ngữ script khác.
Tên của ngôn ngữ Python này không liên quan đến loài rắn cùng tên (“rắn” nghĩa tiếng anh là “python”), mà nó là tên của một đoàn hài kịch nổi tiếng của Anh – Monty Python (từ những năm 19070). Bản thân Guido Van Rossum là một người hâm mộ lớn Monty Python’s Flying Circus. Phiên bản Python 1.0 được phát hành vào tháng 1 năm 1994. Các tính năng mới chính trong bản phát hành này là các công cụ lập trình chức năng lamda, map, filter và reduce.
Phiên bản Python 2.0 được phát hành vào ngày 16 tháng 10 năm 2000 với nhiều tính năng mới quan trọng, bao gồm một bộ thu gom rác phát hiện chu kỳ (ngoài việc đếm tham chiếu) để quản lý bộ nhớ và hỗ trợ Unicode. Tuy nhiên, thay đổi quan trọng nhất nhất là đối với quy trình phát triển, với dự chuyển sang một suy trình minh bạch hơn và được cộng đồng hỗ trợ.0 (còn được gọi là “Python 3000” hoặc “Py3k”) là một phiên bản mới của ngôn ngữ này và không tương thích với dòng phát hành 2. Ngôn ngữ này phần lớn giống nhau, nhưng nhiều chi tiết, đặc biệt là cách các đối tượng được xây dựng như từ điển và chuỗi hoạt động, đã thay đổi đáng kể và rất nhiều tính năng đã lỗi thời cuối cùng cũng đã bị loại bỏ. Trang 17 Hình 1: Logo Python 2.
Nguyên tắc hoạt động Python là một ngôn ngữ lập trình đa mẫu hình, hỗ trợ hoàn toàn lập trình hướng đối tượng và lập trình cấu trúc. Nhiều tính năng của nó cũng hỗ trợ lập trình hàm và lập trình hướng khía cạnh. Python được thiết kế để dễ đọc và viết, với cú pháp rõ ràng và đơn giản. Python hoạt động bằng cách biên dịch mã nguồn thành bytecode, sau đó bytecode được thực thi bởi một máy ảo Python.
Điều này cho phép Python hoạt động trên nhiều nền tảng khác nhau. Ưu điểm Python có nhiều ưu điểm như: - Dễ đọc và dễ học: Python có cú pháp đơn giản và rõ ràng, giúp người mới bắt đầu dễ dàng tiếp cận và học hỏi. - Giảm chi phí bảo trì: Do tính đơn giản của nó, Python giúp bảo trì ứng dụng dễ dàng hơn và do đó, giảm chi phí liên quan. - Tránh tác hại từ lỗi phần mềm: Python không để lỗi mã xảy ra phân đoạn trong ứng dụng.
- Khả năng ứng dụng rộng rãi: Python có thể được sử dụng trong nhiều lĩnh vực khác nhau như lập trình máy chủ web, tạo mẫu, phát triển trò chơi, khoa học dữ liệu và học máy. Nhược điểm Mặc dù Python có nhiều ưu điểm, nhưng cũng có một số nhược điểm: - Không có khả năng mở rộng và quản lý tốt như Java khi làm việc với các dự án lớn. - Cơ chế Global Interpreter Lock (GIL) khiến việc sử dụng đa luồng đòi hỏi đa tiến trình. Mô hình MVT 2.
Tổng quan mô hình MVT MVT là viết tắt của cụm từ “Model-View-Template “. Đây là mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. MVT là một mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính. MVT chia thành ba phần được kết nối với nhau và mỗi thành phần đều có một nhiệm vụ riêng của nó và nó đọc lập với các thành phần khác.
Tên gọi 3 thành phần: - View (V): View is a request function process, this function nhận HTTP yêu cầu và trả về HTTP phản hồi. Xem dữ liệu truy cập cần thiết để trả lời các yêu cầu thông qua các mô hình và quyền định dạng của phản hồi cho mẫu. - Model (M): Model is the Python object has the task of the data structure of the application and cung cấp cơ chế quản lý (thêm, sửa, thay đổi, xóa) và truy vấn các bản ghi trong cơ sở dữ liệu. Cùng với chỗ giữ, nó được sử dụng để thực hiện một nội dung.
Trang 19 Hình 2: Mô hình MVT MVT là viết tắt của Model-View-Template. Mẫu là một tệp HTML được trộn với DTL (Ngôn ngữ mẫu Django). Django chăm sóc phần Bộ điều khiển, đây là mã điều khiển sự tương tác giữa hai phần khác, Model và View. Về phương thức hoạt động sẽ giống với mô hình MVC, trong đó V (View) sẽ tương đương với C (Controller), T (Template) sẽ tương đương với V (View) ở các framework khác.
Ưu điểm mô hình MVT - Dễ dàng mở rộng, tái sử dụng code (nhờ khả năng kế thừa tuyệt vời) - Có thể lập trình hướng đối tượng dễ dàng (View kế thừa nhiều class) - Xử lý truy vấn HTTP riêng ứng với từng phương thức GET, POST, v. - Django xây dựng sẵn nhiều class cho các tác vụ thông thường, thời gian code sẽ giảm đi đáng kể 2. Nhược điểm mô hình MVT - Rất khó để đọc code, vì việc kế thừa khiến các class View chỉ còn rất ít code. - Luồng dữ liệu không tường minh, bởi sử dụng các class kiểu kế thừa khiến nhiều xử lý không được thể hiện trên code.
- Những class được xây dựng sẵn là trong suốt với người dùng, rất khó debug. Trang 20 - Các xử lý phức tạp cần ghi đè phương thức, hoặc sử dụng các decorators (yêu cầu import từ bên ngoài). Giới thiệu về Django Django là một web framework miễn phí mã nguồn mở được viết bằng Python. Django sử dụng mô hình Model-View-Control (MVC) và được phát triển bởi Django Software Foundation (DSF) – một tổ chức phi lợi nhuận độc lập.
Mục tiêu chính của Django là đơn giản hóa việc tạo các website phức tạp có sử dụng cơ sở dữ liệu. Một số website phổ biến được xây dựng từ Django là Pinterest, Instagram, Mozilla, và Bitbucket. Hình 3: Logo Framework Django Django có nhiều tính năng như: - Bảng admin hay còn gọi là admin panel để giúp lập trình viên quản trị dễ hơn so với các framework như Laravel hay Yii. - Web server riêng.
- Sử dụng cấu trúc US MVC. - Có thư viện HTTP. Trang 21 - Bao gồm Batteries (tất cả những yếu tố cần để giải quyết các case thường thấy). - Sở hữu Python Unit Test Framework.
Các tính năng của Django Các tính năng chính của Django bao gồm: - Giúp xây dựng cấu trúc URLs đơn giản nhưng mạnh mẽ. - Hệ thống xác nhận thông tin người dùng có sẵn. - Cơ sở dữ liệu hướng đối tượng giúp lưu trữ và phục hồi dữ liệu. - Trình quản lý admin tự động giúp sửa, thêm và xóa các tính năng.
- Hệ thống cache mạnh mẽ. Giới thiệu về CKEditor CKEditor (còn gọi là FCKeditor) là một trình soạn thảo mã nguồn mở theo kiểu WYSIWYG (tay làm - mắt thấy) của CKSource. Chương trình này có thể tích hợp vào các website mà không cần cài đặt. Hình 4: Logo Framework CKEditor 5 Cũng giống các trình soạn thảo dành cho web khác, CKEditor sử dụng JavaScript là nền tảng, riêng việc tương tác với server thì CKEditor sử dụng các ngôn ngữ sau: Active-FoxPro, ASP, ASP.NET, ColdFusion, Java, JavaScript, Lasso, Perl, PHP và Python.
Các ứng dụng phổ biến của CKEditor CKEditor là một trình soạn thảo văn bản HTML sẵn sàng cho sử dụng được thiết kế để đơn giản hóa việc tạo ra nội dung web. Đó là một trình soạn thảo WYSIWYG mang lại các tính năng xử lý văn bản phổ biến trực tiếp đến trang web của bạn. CKEditor Trang 22 có thể được tích hợp vào các website để cung cấp cho người dùng một công cụ soạn thảo văn bản đầy đủ tính năng. Một số ứng dụng phổ biến của CKEditor bao gồm: - Tạo và chỉnh sửa nội dung cho các trang web và blog.
- Tạo và chỉnh sửa email và tin nhắn. - Tạo và chỉnh sửa các tài liệu và báo cáo.