FRAMEWORK DJANGO FRAMEWORK DJANGOFRAMEWORK DJANGO FRAMEWORK DJANGO XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB. XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB. XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB. XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB. Đầu tiên là việc lựa chọn website rao vặt, với tiêu chí tạo sự thoải mãi cho người sử dụng, nhóm em sẽ không lựa chọn những website như: yêu cầu xác nhận rao vặt qua điện thoại, thu phí mỗi lần rao vặt. Những website mà nhóm lựa chọn sẽ gồm có website rao vặt không cần tài khoản và cần tài khoản đăng nhập. Trong đó gồm có: tudomuaban.com, raovat113.com, canmuaban.vn, đều là những website có lượng thông tin rao vặt hàng ngày lớn. Các phần chính trong việc triển khai website: Theo vết thông tin rao vặt khi một người dùng rao vặt ở các website trên: 2 phương thức hoạt động chính của một website là: POST và GET dữ liệu đến Web – Server của website, sau đó Server sẽ xử lý và trả về dữ liệu và Brower hiển thị cho người dùng. o Sử dụng công cụ Inspect của Browers, chuyển qua mục Network và theo dõi các method POST, GET. Thao tác từng bước rao vặt trên một website và ghi chú lại những thông tin cần thiết như: Responsive Headers, Request Headers, Form Data(dữ liệu mà ta nhập). o Từ thông tin có được, đặc biệt là trong phần Form Data(cấu trúc dữ liệu gửi lên Web – Server của website) và thông tin viewsource website ở mục thông tin lựa chọn, ta biết được các dữ liệu đó tương ứng với gì(đã số dữ liệu trong Form Data là số, như category_id, location_id). Ví dụ theo vết: XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB.XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB.XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB.XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB. FRAMEWORK DJANGOFRAMEWORK DJANGOFRAMEWORK DJANGO
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN XÂY DỰNG WEBSITE TỔNG HỢP RAO VẶT GVHD: ThS Trần Thị Dung Nhóm sinh viên: TP.HCM, tháng năm 2016 Lời mở đầu Ngày nay, cơng nghệ thơng tin nói riêng Internet nói chung yếu tố cần thiết hầu hết lĩnh vực đời sống Các thông tin Internet cập nhật liên tục, nhanh chóng xác Và website ứng dụng phổ biến Internet Nó ngày phát triển mạnh mẽ có nhiều ứng dựng thực tiễn sống Người tiêu dùng Việt Nam xem Internet cơng cụ để tìm kiếm thơng tin sản phẩm, mặt hàng, thông tin người bán, người mua Thực tế, Internet có nhiều website rao vặt nhằm tạo liên kết người bán người mua, hỗ trợ người mua biết thêm nhiều thơng tin sản phẩm cần mua, rao quảng cáo đưa thông tin bất động sản, phòng trọ, nhà … Tuy nhiên, thơng tin sản phẩm cần bán, cần mua đến website mà đăng tin mà thơi Do nhóm em chọn đề tài “Xây dựng website tổng hợp rao vặt” nhằm giúp cho người sử dụng dễ dàng đăng tin rao vặt trang rao vặt như: canmuaban.vn, raovat123.com, tudomuaban.com… với lần đăng mà không cần phải thao tác nhiều Lời cảm ơn Để hoàn thành đề tài nhóm chúng em chân thành cảm ơn Q Thầy/Cơ khoa Mạng Máy Tính Truyền Thơng nhiệt tình dẫn giúp đỡ, nhóm xin gửi lời cảm ơn sâu sắc đến ThS Trần Thị Dung nhiệt tình hướng dẫn cho nhóm bước để thực đề tài, giúp nhóm giải nhiều khó khăn nảy nhiều ý tưởng Đồng thời nhóm gửi lời cảm ơn đến anh/chị khóa trên, bạn lớp đóng góp ý kiến để nhóm hồn thiện báo cáo cách tốt Mặc dù nhóm chúng em cố gắng, nhiên thời gian ngắn kiến thức nhiều hạn chế nên chắn khơng thể tránh khỏi sai sót Chúng em mong nhận đánh giá, góp ý để hồn thiện kiến thức Một lần nữa, nhóm chúng em xin chân thành cảm ơn nhiều! Tp Hồ Chí Minh, tháng 06 năm 2016 Sinh viên thực Nhận xét giáo viên hướng dẫn ĐỀ CƯƠNG ĐỒ ÁN MÔN HỌC Tên đề tài : Xây dựng Website tổng hợp rao vặt Giảng viên hướng dẫn : ThS Trần Thị Dung Sinh viên thực : Thời gian thực hiện: 03/2016 đến 06/2016 Nội dung đề tài : Tìm hiểu, giới thiệu ngơn ngữ lập trình Python Tìm hiểu xây dựng giao diện HTML, CSS, jQuery, Boostrap … Tìm hiểu xây dựng website Framework Django Tìm hiểu hệ quản trị sở liệu SQLite Cấu trúc báo cáo Chương 1: Giới thiệu đề tài Chương trình bày bối cảnh, mục đích lý chọn đề tài Chương 2: Cơ sở lý thuyết Chương trình bày lý thuyết python, framwork django, sql lite Chương 3: Phân tích thiết kế hệ thống Chương trình bày phân tích thiết kế xây dựng hệ thống website tổng hợp rao vặt Chương 4: Triển khai website Chương trình bày hướng triển khai kết demo chương trình, thơng tin sản phẩm, cách cài đặt hướng dẫn sử dụng Chương 5: Kết luận, hướng phát triển đề tài Chương tổng kết kết đạt được, ưu khuyết điểm chương trình hướng phát triển Chương 1: TỔNG QUAN ĐỀ TÀI 1.1 Tên đề tài Xây dựng website “Tổng hợp rao vặt” 1.2 Thực trạng lý chọn đề tài 1.2.1 Thực trạng vấn đề Hiện Internet ngày phát triển hình thức mua bán mạng internet lại trở nên phổ biến Ở Việt Nam hình thức tiến triển nhanh tập trung vào hầu hết lĩnh vực sống.Vì rao vặt trực tuyến lựa chọn thông minh cho nhà kinh doanh hay cá nhân, tổ chức Trên hàng tỉ người sử dụng internet ngày, phần lớn họ thường đọc tin rao vặt lướt web hội lớn để nhà kinh doanh hay cá nhân, tổ chức quảng bá, tiếp thị sản phẩm đến với nhà tiêu dùng 1.2.2 Hướng giải Cũng vấn đề mà nhóm nảy ý tưởng tiến hành xây dựng lên website “Tổng hợp rao vặt” Nhằm đáp ứng nhu cầu mua bán, trao đổi sản phẩm, mặt hàng dịch vụ cho tổ chức, cơng ty, cá nhân có nhu cầu Thông tin truyền tải đến người sử dụng cách nhanh chóng hiệu giúp người dùng dễ dàng tìm kiếm thơng tin sản phẩm cần giúp quản g bá sản phẩm đến tay người tiêu dùng cách rộng rãi Website giúp người dùng phát tán tin rao vặt lên website rao vặt khác giúp quảng bá tin rao vặt đến tất người ghé thăm website Tin rao vặt người dùng có hội cao để số lượng người dùng lớn sử dụng dịch vụ mua bán trực tuyến biết đến vào theo dõi Chương : CƠ SỞ LÝ THUYẾT 2.1 Ngôn ngữ Python SQLite 2.1.1 Ngơn ngữ Python 2.1.1.1 Python gì? Python ngơn ngữ lập trình thơng dịch Guido van Rossum tạo năm 1990 Python hoàn toàn tạo kiểu động dùng chế cấp phát nhớ tự động, tương tự Perl, Ruby, Scheme, Smalltalk, Tcl Python phát triển dự án mã mở, tổ chức phi lợi nhuận Python Software Foundation quản lý.[1] Theo đánh giá Eric S Raymond, Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình Cấu trúc Python cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, nhận định Guido van Rossum vấn ông Ban đầu, Python phát triển để chạy Unix Nhưng theo thời gian, "bành trướng" sang hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux hệ điều hành khác thuộc họ Unix Mặc dù phát triển Python có đóng góp nhiều cá nhân, Guido van Rossum tác giả chủ yếu Python Ông giữ vai trò chủ chốt việc định hướng phát triển Python Hình 2.0 : Python 2.1.1.2 Các phiên Python 1: bao gồm phát hành 1.x Giai đoạn này, kéo dài từ đầu đến cuối thập niên 1990 Từ năm 1990 đến 1995, Guido làm việc CWI (Centrum voor Wiskunde en Informatica – Trung tâm Tốn-Tin học Amsterdam, Hà Lan) Vì vậy, phiên Python CWI phát hành Phiên cuối phát hành CWI 1.2 Python 2: vào năm 2000, Guido nhóm phát triển Python dời đến BeOpen.com thành lập BeOpen PythonLabs team Phiên Python 2.0 phát hành Sau phát hành Python 2.0, Guido thành viên PythonLabs gia nhập Digital Creations Python 3, gọi Python 3000 Py3K: Dòng 3.x khơng hồn tồn tương thích với dòng 2.x, có công cụ hỗ trợ chuyển đổi từ phiên 2.x sang 3.x Nguyên tắc chủ đạo để phát triển Python 3.x “bỏ cách làm việc cũ nhằm hạn chế trùng lặp mặt chức Python” 2.1.1.3 Những ưu điểm Python Python thiết kế để trở thành ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế kí hiệu cấu trúc cú pháp so với ngôn ngữ khác Python hỗ trợ cho chế độ tương tác cho phép thử nghiệm tương tác gỡ lỗi đoạn mã Việc thực tiêu chuẩn Python viết ANSI C, biên dịch chạy tất tảng lớn sử dụng Python cho phép chia chương trình thành module để sử dụng lại chương trình khác Nó cung cấp sẵn tập hợp modules chuẩn mà lập trình viên sử dụng lại chương trình họ Các module cung cấp nhiều chức hữu ích, hàm truy xuất tập tin, lời gọi hệ thống, trợ giúp lập trình mạng (socket) … Python có khả giao tiếp đến hầu hết loại sở liệu, có khả xử lí văn bản, tài liệu hiệu quả, làm việc tốt với công nghệ Web khác GUI (Giao diện đồ họa người dùng) đơn giản nhanh chóng Python làm cho người dùng đồ họa hướng đối tượng tiêu chuẩn để Tk GUI API gọi Tkinter (Tkinter 2.x) cho phép chương trình Python để thực ảnh minh hoạ di động với nhìn tự nhiên cảm nhận 2.1.2 SQLite 2.1.2.1 SQLite gì? SQLite phần mềm quản lý sở liệu (DBMS) Database Management System tương tự MySQL, PostgreSQL Đặc điểm SQLite gọn, nhẹ, đơn giản Chương trình gồm file vỏn vẹn chưa đến 500KB, khơng cần cài đặt, khơng cần cấu hình hay khởi động mà sử dụng Dữ liệu database lưu file Khơng có khái niệm user, password hay quyền hạn SQLite database SQLite có transaction để đảm bảo tính tồn vẹn an tồn q trình thao tác liệu Có thể so sánh có vài điểm giống với Access, nhìn chung có nhiều khác biệt [2] SQLite khơng thích hợp với hệ thống lớn quy mơ vừa tầm SQLite phát huy uy lực không yếu mặt chức hay tốc độ Với đặc điểm SQLite sử dụng nhiều việc phát triển, thử nghiệm v v lưa chọn phù hợp cho người bắt đầu học database 2.1.2.2 Một số ưu điểm SQLite SQLite có ưu điểm sau: - Tin cậy: hoạt động transaction (chuyển giao) nội sở liệu thực - trọn vẹn, không gây lỗi xảy cố phần cứng Tuân theo chuẩn SQL92 (chỉ có vài đặc điểm không hỗ trợ) Không cần cài đặt cấu hình Kích thước chương trình gọn nhẹ, với cấu hình đầy đủ khơng đầy 500 kB - Thực thao tác đơn giản nhanh hệ thống sở liệu khách/chủ - khác Không cần phần mềm phụ trợ Phần mềm tự với mã nguồn mở, thích rõ ràng 2.1.2.3 Một vài đặc tính SQLite - Zero-Configuration: Bạn hồn tồn khơng phải thiết lập cấu hình - để sử dụng SQLite, tất bạn cần file SQLite.exe chạy Serverless: Các Hệ quản trị CSDL SQLServer, Oracle, PostgreSQL thường cần server riêng để triển khai ứng dụng, cài đặt database engine, máy khách kết nối đến server để xử lý liệu cách tập trung Tuy nhiên SQLite không làm việc theo cách mà ứng dụng truy xuất trực tiếp vào file database, máy khách truy xuất file database SQLite để server thông qua chế chia sẻ bảo mật file hệ điều hành, người dùng truy cập vào thư mục có quyền đọc – ghi đọc ghi vào - file database SQLite Single Database File: Database SQLite tạo file liệu Tất - Stable Cross-Platform Database File: Bạn copy file database SQLite từ hệ thống sang hệ thống khác, từ hệ thống 32 hay 64 bit, từ phiên SQLite sang phiên khác mà không cần chuyển đổi, nâng cấp hệ điều hành, cấu trúc - hệ thống hay phải làm lại file database Compact: Cực kỳ nhỏ gọn Toàn thư viện SQLite gồm file vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà sử dụng Nếu lược bỏ số chức không cần thiết kích thước - file giảm khoảng 300kB Manifest typing: Khi bạn dùng SQLite để ý số lượng kiểu liệu ít, điều đặc trưng nó, SQLite, kiểu liệu thuộc tính giá trị lưu khơng phải thuộc tính cột lưu giá trị Tuy vậy, có vài ràng buộc, với cột khóa kiểu integer phải lưu giá trị phải xác kiểu int, ngồi SQLite cố gắng chuyển đổi Quan hệ – nhiều (bắt buộc): 3.5.2.3 Biểu diễn mơ hình ERD Chương : TRIỂN KHAI WEBSITE 4.1 Triển khai website Đầu tiên việc lựa chọn website rao vặt, với tiêu chí tạo thoải cho người sử dụng, nhóm em không lựa chọn website như: yêu cầu xác nhận rao vặt qua điện thoại, thu phí lần rao vặt Những website mà nhóm lựa chọn gồm có website rao vặt không cần tài khoản cần tài khoản đăng nhập Trong gồm có: tudomuaban.com, raovat113.com, canmuaban.vn, website có lượng thơng tin rao vặt hàng ngày lớn Các phần việc triển khai website: - Theo vết thông tin rao vặt người dùng rao vặt website trên: phương thức hoạt động website là: POST GET liệu đến Web – Server website, sau Server xử lý trả liệu Brower hiển thị cho người dùng o Sử dụng công cụ Inspect Browers, chuyển qua mục Network theo dõi method POST, GET Thao tác bước rao vặt website ghi lại thông tin cần thiết như: Responsive Headers, Request Headers, Form Data(dữ liệu mà ta nhập) o Từ thơng tin có được, đặc biệt phần Form Data(cấu trúc liệu gửi lên Web – Server website) thông tin view-source website mục thông tin lựa chọn, ta biết liệu tương ứng với gì(đã số liệu Form Data số, category_id, location_id) Ví dụ theo vết: Giao diện rao vặt: Ta điền thông tin trên, chọn danh mục “Điện thoại – sim số” view-source website: Ta thấy danh mục “Điện thoại – sim số” có data_id = POST data gửi đi: Có cặp key – value sau: o fSubject(Tiêu đề): Bán điện thoại o fCategory(Danh mục): 2(chính data_id danh mục view – source) – tương ứng mục với “Điện thoại – sim số” o fLocation(Thanh phố): 2(data_id thành phố view – source) – tương ứng với “Hồ Chí Minh” o fContent: Nội dung tin rao o Quá trình bước theo vết việc rao vặt website tudomuaban Hướng triển khai tương tự với website lại o Xử lý Python: Sử dụng module: requests, session để POST, GET liệu website - session.post("http://tudomuaban.com/article/write/", data=data_tudomuaban, verify=False) data_tudomuaban trích xuất từ form rao vặt người dùng nhập vào website, theo cấu trúc POST data ta theo vết - Tổng hợp sở liệu: o Các mục những mục ta cần phải trích xuất liệu từ website dự định rao vặt tổng hợp lại sở liệu thống Ví dụ người dùng chọn thành phố mục “Hồ Chí Minh” tạo liệu cho website: tudomuaban.com: fLocation: raovat113.com: brtc_address: canmuaban.vn: brtc_address: hochiminh o module sử dụng bước là: BeautifulSoup(dùng cho web scraping)[7] requests(GET liệu website để scraping, POST liệu login website website yêu cầu login)[8] o Sau có liệu về, tiến hành xếp lưu vào sở liệu để truy xuất trang đăng tin - Xử lý post thông tin rao vặt lên website: o Lấy liệu người dùng nhập vào form thông tin rao vặt (username, password, tiêu đề, email, …) o Sắp xếp liệu vừa đủ, hợp lý tạo thành gói liệu sử dụng POST gửi lên website Với trang web phức tạp hơn: raovat113.com canmuaban.vn phải sử dụng phương thức GET, POST xen kẽ nhau, bước Bên cạnh dùng module BeautifulSoup, requests lấy thơng tin trả website(trong có lấy link post website) o Lưu thông tin post rao vặt lại để phục vụ cho lưu trữ hiển thị rao - trang chủ Xử lý hiển thị giao diện cho website: o Tạo bố cục cho trang web với Django(theo mơ hình MVC) o Lấy liệu từ sở liệu, kết hợp với ngôn ngữ Web: HTML, CSS, jQuery, Bootstrap, xử lý hiển thị giao diện cho website 4.2 Giao diện website Hình 4.1 : Giao diện trang chủ Hình 4.2 : Giao diện trang đăng tin Hình 4.3 : Giao diện mobile responsive Hình 4.4 : Footer website Hình 4.5 : Giao diện trang Liên hệ Hình 4.6 : Trang quản lý admin Hình 4.7 : Trang chỉnh sửa post Hình 4.8 : Tin đăng thành cơng website Tudomuaban.com Hình 4.9 : Tin đăng thành cơng website raovat113.com 4.3 Cài đặt hệ thống Có hai cách để chạy hệ thống là: - Cài lên web hosting: Phương pháp đòi hỏi phí, truy cập - website từ nơi Cài lên host ảo(localhost): Phương pháp không phí Ở phạm vi đề tài sử dụng phương pháp cài đặt lên web hosting Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 5.1 Kết đạt Xây dựng chức website đưa tin rao vặt lên trang rao vặt khác Xây dựng chức quản lý tin rao vặt, chia theo danh mục riêng đưa lên trang rao vặt 5.2 Ưu điểm Hoàn thành tiến độ giao Cố gắng bám sát tiêu chí đề Giao diện website thân thân với người dùng Không cần tạo account vào trang để đăng tin rao vặt 5.3 Nhược điểm Website giải vấn đề Website chưa có chức tạo tài khoản, quản lý tài khoản rao vặt ( tính vừa ưu điểm vừa nhược điểm) 5.4 Thu hoạch chung Hiểu thêm việc xây dựng website đăng tin rao vặt Qua đợt làm đồ án lần chúng em phần hiểu khái niệm cơng việc để xây dựng website nói chung website rao vặt nói riêng Đồng thời tìm hiểu thêm cơng cụ thiết kế trang web, tìm hiểu ngơn ngữ Python, SQLite số phần mềm hỗ trợ khác 5.5 Hướng phát triển đề tài Tiếp tục tìm hiểu xây dựng số chức như: Tạo tài khoản người dùng, chức tìm kiếm tin rao vặt, … Từng bước hoàn thiện website cho rõ ràng phần thân thiện, dễ dàng cho người sử dụng cần bán cần mua Hoàn thiện hệ thống quản trị, dễ dàng cho người quản trị Tài liệu tham khảo: [1] wikipedia.org Python (programming language) [Online] Available: https://en.wikipedia.org/wiki/Python_(programming_language) [2] sql.org About SQLite [Online] Available: https://www.sqlite.org/about.html [3] sql.org Distinctive Features Of SQLite [Online] Available: http://sqlite.com/different.html [4] wikipedia.org HTML.[Online] Available: https://en.wikipedia.org/wiki/HTML [5] wikipedia.org Cascading Style Sheets.[Online] Available: https://en.wikipedia.org/wiki/Cascading_Style_Sheets [6] djangoproject.com Django.[Online] Available: https://www.djangoproject.com/start/overview/ [7] www.crummy.com Beautiful Soup Documentation [Online] Available: https://www.crummy.com/software/BeautifulSoup/bs4/doc/ [8] docs.python-requests.org Requests 2.10.0 Documentation [Online] Available: http://docs.python-requests.org/en/master/user/quickstart/ ... cần mua đến website mà đăng tin mà thơi Do nhóm em chọn đề tài Xây dựng website tổng hợp rao vặt nhằm giúp cho người sử dụng dễ dàng đăng tin rao vặt trang rao vặt như: canmuaban.vn, raovat123.com,... xuất từ form rao vặt người dùng nhập vào website, theo cấu trúc POST data ta theo vết - Tổng hợp sở liệu: o Các mục những mục ta cần phải trích xuất liệu từ website dự định rao vặt tổng hợp lại... đến tay người tiêu dùng cách rộng rãi Website giúp người dùng phát tán tin rao vặt lên website rao vặt khác giúp quảng bá tin rao vặt đến tất người ghé thăm website Tin rao vặt người dùng có hội