N TT NGHIP
Trang tin tc v module ly tin t ng
Trờng đại học vinh
Khoa công nghệ thông tin
đồ án tốt nghiệp
Đề tài:
Xây dựng phần mềM
AUTO GENERATE CODE Và
ứNG DụNG VàO WEBSITE TIN TứC
Giảng viên hớng dẫn: TS. Nguyễn trung hòa
Sinh viên thực hiện : TRịNH VĂN nGọC
Lớp
: 47K - CNTT
Nghệ An - 2011
H Hi Long LP 47K KHOA CễNG NGH THễNG TIN
1 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
LỜI NÓI ĐẦU
Chúng ta ai cũng có nhu cầu tìm hiểu thông tin. Có rất nhiều cách để tìm
hiểu thông tin, trong đó đọc báo là một cách để thu thập thông tin hiệu quả và
nhanh chóng nhất. Ngày này với sự phát triển của internet thì việc đọc báo rất
tiện lợi và thông tin cập nhập rất nhanh chóng. Việc xây dựng một Website tin
tức không ngoài việc tạo nên một tiện ích cho người đọc báo mà có thể giúp họ
tiết kiệm thời gian.
Tuy nhiên để có được nguồn thông tin thường xuyên cập nhật cho trang
tin tức không phải là dễ dàng. Có 3 cách thức để duy trì nguồn tin mới trên trang
tin của mình. Một là xây dựng một đội ngũ chuyên viết bài cho trang tin, cách
này rất tốn kém và rất phức tạp. Cách thứ 2 là xây dựng một đội ngũ chuyên đi
tổng hợp bài từ các trang tin khác trên mạng internet về trang báo mình, cách
này tuy không tốn kém và phức tạp như cách thứ nhất tuy nhiên cũng cần có
nhân lực và tiền bạc. Cách thức thứ 3 là cách mà không cần tới nhân lực và cũng
tiêu tốn ít tiền bạc hơn đó là thiết kế một chương trình tổng hợp các tin bài từ các
nguồn trên internet về trang tin của mình để duy trì ngồn tin mới cho trang tin
của mình.
Chính từ suy nghĩ này tôi đã mạnh dạn chọn đề tài “Xây dựng trang tin tức
và module lấy tin bài tự động” làm đồ án tốt nghiệp của mình.
Đồ án này bao gồm 3 chương:
Chương 1: Tổng quan về đề tài
Nội dung chương này nêu lên lý do, mục đích, yêu cầu, cách tiếp
cận, phạm vi ứng dụng của đề tài và phân tích bài toán
Chương 2: Tìm hiểu ngôn ngữ PYTHON và framework WEB2PY
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
2 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
Nội dung của chương tìm hiểu lịch sử hình thành phát triển, sơ lược
về ngôn ngữ PYTHON và framework WEB2PY, cách sử dụng
ngôn ngữ PYTHON, SQLite trên framework WEB2PY
Chương 3: Thiết kế, cài đặt và giới thiệu sản phẩm
Nội dung của chương viết về thiết kế và cách cài đặt ứng dụng của
đồ án.
Trong quá trình học tập và tìm hiểu để thực hiện đồ án tôi đã nhận được sự
hỗ trợ và động viên của các bạn, sự quan tâm giúp đỡ của các thầy cô giáo trong
khoa và đặc biệt là thầy giáo hướng dẫn – TS. Nguyễn Trung Hòa. Tôi trân
trọng cảm ơn những sự giúp đỡ quý báu đó.
Trong quá trình thực hiện, do trình độ và thời gian có hạn, việc lấy thông
tin chính xác còn nhiều hạn chế, do đó khoá luận không thể tránh khỏi những sai
sót. Vì vậy, tôi rất mong nhận được sự quan tâm giúp đỡ, trao đổi, động viên của
các thầy cô để đồ án “Xây dựng trang tin tức và module lấy tin bài tự đông”
ngày một hoàn thiện.
Xin trân trọng cảm ơn!
Sinh viên thực hiện:
Hồ Hải Long
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
3 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
LỜI NÓI ĐẦU.............................................................................................................................2
....................................................................................................................................................5
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI...................................................................................6
1.1. Lý do chọn đề tài..............................................................................................................6
1.2. Mục đích, yêu cầu.............................................................................................................7
1.3. Cách tiếp cận đề tài...........................................................................................................7
1.4. Phạm vi ứng dụng.............................................................................................................8
1.5. Công cụ sử dụng...............................................................................................................8
1.6. Bài toán thực tế.................................................................................................................8
1.6.1. Đặt vấn đề.................................................................................................................8
1.6.2. Bài toán ...................................................................................................................9
1.6.3. Hướng giải quyết của bài toán...............................................................................10
1.7. Phân tích.........................................................................................................................10
1.7.1. Các yêu cầu đối với module lấy tin bài tự động.....................................................10
1.7.2. Các yêu cầu hoạt động trên trang web...................................................................11
1.7.3. Sơ đồ phân cấp chức năng......................................................................................12
1.7.4. Sơ đồ luồng dữ liệu................................................................................................12
1.7.5. Mô hình thực thể và các thuộc tính........................................................................15
CHƯƠNG 2: TÌM HIỂU VỀ NGÔN NGỮ PYTHON VÀ FRAMEWORK WEB2PY..........22
2.1. Tìm hiểu về ngôn ngữ PYTHON...................................................................................22
2.1.1. Khái niệm PYTHON..............................................................................................22
2.1.2. Lịch sử phát triển:...................................................................................................23
2.1.3.Các phiên bản nổi tiếng của PYTHON...................................................................25
2.1.4. Sơ lược về PYTHON:............................................................................................25
2.1.4.1.Từ khóa:................................................................................................................25
2.1.4.2.Khối lệnh:.............................................................................................................26
2.1.4.3.Trình thông dịch:..................................................................................................27
2.1.4.4.Lệnh và cấu trúc điều khiển:................................................................................27
2.1.4.5.Hệ thống kiểu dữ liệu:..........................................................................................28
2.1.4.6.Module :...............................................................................................................29
2.1.4.7.Một số tính chất khác:..........................................................................................29
2.2. Web2py framework .......................................................................................................30
2.1.1. Giới thiệu về web2py:............................................................................................30
2.1.2. Đặc điểm của web2py............................................................................................30
2.1.3. Mô hình MVC:.......................................................................................................31
2.1.4. Cơ sở dữ liệu trong web2py:..................................................................................33
2.1.4.1. Khai báo cơ sở dữ liệu:.......................................................................................33
2.1.4.2. Các kiểu dữ liệu:.................................................................................................34
1.2.4.3. Thao tác với cơ sở dữ liệu...................................................................................34
CHƯƠNG 3. THIẾT KẾ, CÀI ĐẶT VÀ GIỚI THIỆU SẢN PHẨM......................................35
3.1. Thiết kế...........................................................................................................................36
3.1.1. Lược đồ Website....................................................................................................36
3.1.2. Trang chủ................................................................................................................36
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
4 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
3.1.3. Trang danh mục......................................................................................................38
3.1.4. Chi tiết bài báo.......................................................................................................39
3.1.5. Tìm kiếm................................................................................................................39
3.1.6. Trang lấy tin tức.....................................................................................................40
3.1.7. Quản lý danh mục báo chí......................................................................................40
3.1.8. Quản lý danh sách báo chí......................................................................................41
3.1.9. Quản lý tin tức........................................................................................................41
3.2. Cài đặt.............................................................................................................................42
KẾT LUẬN...............................................................................................................................44
TÀI LIỆU THAM KHẢO.........................................................................................................45
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
5 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Lý do chọn đề tài
Với sự phát triển nhảy vọt của công nghệ thông tin hiện nay,
Internet ngày càng giữ vai trò quan trọng trong các lĩnh vực khoa học kĩ
thuật và đời sống. Dĩ nhiên các bạn đã được nghe nói nhiều về Internet,
nói một cách đơn giản, Internet là một tập hợp máy tính nối kết với nhau,
là một mạng máy tính toàn cầu mà bất kì ai cũng có thể kết nối bằng máy
PC của họ.
Với mạng Internet, tin học thật sự tạo nên một cuộc cách mạng trao
đổi thông tin trong mọi lĩnh vực văn hóa, xã hội, chính trị, kinh tế...Với
công nghệ Word Wide Web, hay còn gọi là Web sẽ giúp bạn đưa những
thông tin mong muốn của mình lên mạng Internet. Hay bạn có thể đọc
báo, tìm hiểu thông tin tại nhà mình mà không phải mất nhiều thời gian đi
mua báo nữa.
Bên cạnh đó, sự ra đời của các ngôn ngữ lập trình cho phép chúng
ta xây dựng các trang Web đáp ứng được các yêu cầu của người sử dụng.
Việc tạo nên một trang tin tức là hết sức dễ đàng, tuy nghiên để duy trì các
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
6 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
bài viết mới cho trang tin là một vấn đề khó. Với nhiều cách thức đã nêu
ra ở phần mở đầu thì chúng ta cần một chương trình tổng hợp bài viết từ
các tờ báo lớn trên mạng về trang tin của mình để giải quyết vấn đề này.
1.2. Mục đích, yêu cầu
Nghiên cứu về cách thức xây dựng web với ngôn ngữ chính là
PYTHON, trên nền framework web2py (www.web2py.com), ngôn ngữ
SQL và hệ quản trị cơ sở dữ liệu SQLite để xây dựng website tin tức và
một module hỗ trợ việc tổng hợp tin tức từ các ngồn tin trên mạng
internet. Và sau cùng là chạy thử nghiệp trang tin tức trên mạng để phục
vụ bạn đọc.
1.3. Cách tiếp cận đề tài
Sự ra đời của Internet, sự phát triển của công nghệ mạng, công nghệ
phần mềm đã và đang làm thay đổi cách thức tiếp cận và xử lý thông tin.
Hiện nay Internet đã trở thành một dịch vụ phổ thông, thậm chí thiết yếu ở
đa số tổ chức, cá nhân. Các hoạt động thương mại, kinh doanh, quản lý
nhà nước, điều hành công việc đã và đang hoà nhập và môi trường
Internet. Chính vì thế ngày nay hầu như tất cả các tòa báo đã có trang tin
tức điện tử cho mình để phục vụ cho bạn đọc trên mạng internet.
Nhu cầu tìm hiểu thông tin, đọc báo cũng ngày càng đa dạng. Việc
xây dựng một Website tin tức phục vụ nhu cầu trên cũng không ngoài việc
tạo nên một tiện ích cho người dung internet có thể tiết kiệm thời gian đọc
báo.
Nhằm đảm bảo lượng tin tức cập nhật thường xuyên trên trang tin
cũng là một việc rất quan trọng. Việc xây dựng một module lấy tin bài tự
động cũng nhằm việc mang lại nhiều thông tin mới nhất cho người đọc.
Trang tin tức được tạo ra nhằm phục vụ nhu cầu tìm hiểu thông tin
của chúng ta hằng ngày. Góp phần mang lại sự tiện lợi cho nhu cầu đọc
báo hằng ngày của chúng ta.
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
7 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
1.4. Phạm vi ứng dụng
Trang tin tức hoạt động và phục vụ cho nhu cầu tìm hiểu tin tức của
tất cả mọi người có nhu cầu tìm hiểu thông tin, đọc báo. Trang tin tức sử
dụng được trên tất cả các máy tính có Internet. Không cần cài đặt thêm
ứng dụng khác. Ngoài ra trang tin tức còn ấp dụng cho các Công ty, tổ
chức có nhu cầu quảng cáo, thực hiện các chiến dịch khuyến mãi trực
tuyến.
1.5. Công cụ sử dụng
Microsoft SQL Server 2000.
Web2py Framework version 1.94.1.
Notepad++.
Adobe Photoshop CS4.
Adobe Dreamweaver CS4.
Mozilla Firefox version 4.0.
Google Chrome 11.0.696.60
1.6. Bài toán thực tế
1.6.1. Đặt vấn đề
Chúng ta ai cũng có nhu cầu tìm hiểu thông tin. Có rất nhiều cách để tìm
hiểu thông tin, trong đó đọc báo là một cách để thu thập thông tin hiệu quả và
nhanh chóng nhất. Ngày này với sự phát triển của internet thì việc đọc báo rất
tiện lợi và thông tin cập nhập rất nhanh chóng. Việc xây dựng một Website tin
tức không ngoài việc tạo nên một tiện ích cho người đọc báo mà có thể giúp họ
tiết kiệm thời gian .
Tuy nhiên để có được nguồn thông tin thường xuyên cập nhật cho trang
tin tức không phải là dễ dàng. Có nhiều cách thức đơn để duy trì nguồn tin mới
trên trang tin của mình. Một là xây dựng một đội ngũ chuyên viết bài cho trang
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
8 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
tin, cách này rất tốn kém và rất phức tạp. Cách thứ 2 là xây dựng một đội ngũ
chuyên đi tổng hợp bài từ các trang tin khác về báo mình, cách này tuy không
tốn kém và phức tạp hơn cách thứ nhất tuy nhiên cũng cần có nhân lực và tiền
bạc. Trong đó có một cách thức mà không cần tới nhân lực và cũng tiêu tốn ít
tiền bạc hơn đó là thiết kế một chương trình tổng hợp các tin bài từ các nguồn
trên internet về trang tin của mình để duy trì ngồn tin mới cho trang tin của
mình.
Xuất phát từ những yêu cầu đó, tại sao chúng ta không giao việc tổng hợp
tin tức từ các trang báo khác cho máy tính làm việc. Chúng ta sẽ xây dựng một
module đảm nhận việc tổng hợp từ các trang báo lớn trên mạng về trang tin tức
của mình.
1.6.2. Bài toán
Trang tin tức là một website tin được thiết kế với mục đích xây
dựng một trang thông tin nhỏ đáp ứng nhu cầu đọc tin tức của mọi người.
Tại đây mọi người có thể đọc các tin tức mới từ các trang tin tức lớn.
Lợi ích của người truy cập trang Website
Đọc báo một cách dễ dàng và tiện lợi
Được xem các bài viết mới từ nhiều trang báo lớn trên mạng
Website gồm có những nội dung cơ bản sau
Bao gồm các bài viết, tin tức về tất cả các lĩnh vực kinh tế,
chính trị, văn hóa, xã hội, thể thao,…v…v
Các tin bài sẽ được cập nhật mới từ các trang báo lớn ở trên
mạng.
Khách hàng có thể tìm kiếm các bài viết, bài báo.
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
9 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
1.6.3. Hướng giải quyết của bài toán
Thông qua ngôn ngữ PYTHON và framework web2py để xây dựng
các trang web, bao gồm Giao diện, Các Module nghiệp vụ. Dùng SQLite
để lưu trữ và xử lý các kết nối cơ sở dữ liệu. Các hình thức gửi và nhận dữ
liệu giữa công ty và khách hàng thông qua nền Intranet và Internet.
1.7. Phân tích
1.7.1. Các yêu cầu đối với module lấy tin bài tự động
Module lấy tin bài sẽ lấy tin từ các nguồn tin được chỉ định về lưu
trữ tại cơ sở dữ liệu ở trang tin của mình. Thông tin của một bài viết được
lấy về bao gồm: Tiêu đề, đoạn mô tả, và nội dung của bài viết.
Đối với module lấy tin bài tự động thì hoạt động của nó:
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
10 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
Lấy được các tin tức từ các nguồn tin đã được chỉ định về lưu trữ
tại cơ sở dữ liệu của mình.
Quản lý các loại thông tin cần lấy
Quản lý các nguồn thông tin cần lấy về
Quản lý các loại danh mục tin
Quản lý các tin tức đã được lấy về
1.7.2. Các yêu cầu hoạt động trên trang web
Với một bài toán này thì hoạt động của nó bao gồm:
Hoạt động của người xem:
Một người dùng khi họ truy cập vào trang web để đọc tin tức. Do
đó để đáp ứng được nhu cầu tối thiểu đó thì trang tin phải cũng cấp các
thong tin cần thiết, có giá trị và hơn thế nữa là phải dễ dàng thao tác,
bố trí hình ảnh và chữ viết phải dễ đọc tạo cảm giác thoải mái.
Hoạt động của nhà quản lý:
Một người quản lý website tin tức họ cần phải cập nhật được tin tức
mới, sửa lại được nội dung của tin hay là xóa đi những tin không cần
thiết.
Đối với phần lấy tin bài tự động, người quản trị cần phải bổ sung
được các địa chỉ các trang tin ở trên mạng mà mình muốn lấy bài viết
về.
Bổ sung các danh mục tin tức ở một số các trang báo mà mình
muốn lấy về. Sau khi đã lấy được các tin bài từ các trang báo trên
mạng về thì người quản trị cũng cần có chức năng đưa bài báo đó ra tờ
báo của mình, sửa bài báo đó nếu cần thiết.
Từ những yêu cầu trên ta có sơ đồ chức năng bài toán như sau:
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
11 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
1.7.3. Sơ đồ phân cấp chức năng
1.7.4. Sơ đồ luồng dữ liệu
Sơ đồ luồng dữ liệu mức khung cảnh:
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
12 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
Biểu đồ luồng dữ liệu mức dưới đỉnh:
o Quản lý danh mục tin tức:
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
13 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
o Quản lý tin tức:
o Tìm kiếm:
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
14 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
1.7.5. Mô hình thực thể và các thuộc tính
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
15 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
Bảng “Crawler_content_type” – Bảng chứa loại nội dung cần được lấy về
T
TÊN THUỘC TÍNH
T
1. id
2. Name
3. Rules
KIỂU DỮ
LIỆU
integer
Char
Text
CHIỀU
DÀI
CHÚ THÍCH
4 Khóa chính, tự tăng
128 Tên loại
Luật cho loại nội
dung cần lấy về
Bảng “Crawler_category” – Bảng chứa danh mục nội dung cần lấy về
T
T
TÊN THUỘC TÍNH
1. id
2. Parent
3. Code
4. Name
5. Position
KIỂU DỮ
LIỆU
Integer
Integer
CHIỀU
DÀI
Char
Char
Integer
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
CHÚ THÍCH
4 Khóa chính, tự tăng
4 Id của danh mục
cha
128 Mã của danh mục
512 Tên danh mục
4 Thứ tự danh mục
16 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
Bảng “Crawler_keys” – Bảng chứa từ khóa liên quan tới danh mục
T
T
TÊN THUỘC TÍNH
1. id
2. Crawler_category
3. Name
4. Quantity
5. Category
KIỂU DỮ
LIỆU
Integer
Integer
Char
Integer
Char
CHIỀU
DÀI
4
4
512
10
512
CHÚ THÍCH
Khóa chính, tự tăng
Id danh mục
Tên từ khóa
Số lần xuất hiện
Danh mục
Bảng “Crawler_newspaper_type” – Bảng chứa kiểu báo
T
T
TÊN THUỘC TÍNH
1. id
2. Parent
3. Name
4. Position
KIỂU DỮ
LIỆU
Integer
Integer
Char
Integer
CHIỀU
DÀI
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
4
4
512
4
CHÚ THÍCH
Khóa chính, tự tăng
Id kiểu báo cha
Tên kiểu báo
Thứ tự kiểu báo
17 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
Bảng “Crawler_newspaper” – Bảng chứa báo
T
T
TÊN THUỘC TÍNH
KIỂU DỮ
1. id
2. Crawler_newspaper_t
LIỆU
Integer
Integer
ype
3. Name
4. Link
5. Rules
Char
Char
Text
CHIỀU
DÀI
CHÚ THÍCH
4 Khóa chính, tự tăng
4 Id kiểu báo
512 Tên báo
512 Địa chỉ của báo
Luật của một bài
R
báo tương ứng
Bảng “Crawler_newspaper_category” – Bảng chứa danh mục báo
T
T
TÊN THUỘC TÍNH
KIỂU DỮ
CHIỀU
DÀI
CHÚ THÍCH
1. id
2. Crawler_category
3. Crawler_newspaper
4. Crawler_content_type
5. Category
LIỆU
Integer
Integer
Integer
Integer
Char
R
6. Name
Char
512 Tên danh mục
N
7. Link
8. Rules
9. Rulesdetail
Char
Text
Text
512 Địa chỉ danh mục
512 Luật danh mục
512 Luật chi tiết
4
4
4
4
512
Khóa chính, tự tăng
ID kiểu dữ liệu
ID báo
ID kiểu nội dung
Danh mục
r
Bảng “Crawler” – Bảng chứa nội dung dữ liệu được lấy về
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
18 | 45
ĐỒ ÁN TỐT NGHIỆP
T
T
TÊN THUỘC TÍNH
Trang tin tức và module lấy tin tự động
KIỂU DỮ
LIỆU
1. id
Integer
2. Crawler_newspaper_c Integer
CHIỀU
DÀI
CHÚ THÍCH
4 Khóa chính, tự tăng
4 ID danh mục báo
ategory
3. Title
4. Description
5. Update
Char
Char
Char
512 Tiêu đề của báo
512 Mô tả bài báo
512 Thời gian cập nhật
R
6. Link
Char
512 Địa chỉ thực của bài
Time
Double
Char
báo
Thời gian tạo
Vị trí
512 Ảnh minh họa
N
7. Created
8. Point
9. Image
r
Bảng “Crawler_contents” – Bảng chứa nội dung chi tiết của bài báo
T
T
TÊN THUỘC TÍNH
1. id
2. Crawler
3. Content
KIỂU DỮ
LIỆU
Integer
Integer
Text
CHIỀU
DÀI
CHÚ THÍCH
4 Khóa chính, tự tăng
4 ID báo được lấy về
Nội dung chi tiết
của bài báo
Bảng “auth_group” – Bảng chứa nhóm người dùng
T
T
TÊN THUỘC TÍNH
1. id
KIỂU DỮ
LIỆU
Integer
CHIỀU
DÀI
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
CHÚ THÍCH
4 Khóa chính, tự tăng
19 | 45
ĐỒ ÁN TỐT NGHIỆP
T
TÊN THUỘC TÍNH
T
2. Role
3. Description
Trang tin tức và module lấy tin tự động
KIỂU DỮ
CHIỀU
CHÚ THÍCH
DÀI
512 Quyền của nhóm
Miêu tả
LIỆU
Char
Text
Bảng “auth_permission” – Bảng chứa quyền người dùng
T
T
TÊN THUỘC TÍNH
1. id
2. Group_id
3. Name
4. Table_name
5. Record_id
KIỂU DỮ
CHIỀU
LIỆU
Integer
Integer
DÀI
CHÚ THÍCH
4 Khóa chính, tự tăng
4 ID Nhóm người
dùng
512 Tên quyền
512 Tên bảng
4 Id bản ghi
Char
Char
Integer
Bảng “auth_user” – Bảng chứa người dùng
T
TÊN THUỘC
T
TÍNH
1. id
2. First_name
3. Last_name
4. Email
KIỂU DỮ
LIỆU
Integer
Char
Char
Char
CHIỀU
DÀI
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
4
128
128
512
CHÚ THÍCH
Khóa chính, tự tăng
Họ người dùng
Tên người dùng
Email người dùng
20 | 45
ĐỒ ÁN TỐT NGHIỆP
T
TÊN THUỘC
T
TÍNH
5. Password
6. Registration_key
7. Reset_password_ke
Trang tin tức và module lấy tin tự động
KIỂU DỮ
LIỆU
Char
CHIỀU
CHÚ THÍCH
DÀI
512 Mật khẩu người
dùng
512 Mã đăng ký
512 Mã khởi tạo lại mật
Char
Char
y
khẩu
Bảng “auth_event” – Bảng chứa các sự kiện về người dùng
T
TÊN THUỘC TÍNH
T
1. id
2. Time_stamp
3. Client_ip
KIỂU DỮ
LIỆU
Integer
Time
Char
CHIỀU
DÀI
CHÚ THÍCH
4 Khóa chính, tự tăng
4 Thời gian
512 Địa chỉ ip máy trạm đã
login tài khoản
4. User_id
Integer
Mã người dùng
5. Origin
Char
512 Nguồn gốc
6. Description
Text
Miêu tả
Bảng “auth_membership” – Bảng liên kết người dùng và nhóm người
dùng
T
T
TÊN THUỘC TÍNH
1. id
2. Group_id
3. User_id
KIỂU DỮ
LIỆU
Integer
Integer
CHIỀU
DÀI
Integer
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
CHÚ THÍCH
4 Khóa chính, tự tăng
4 ID Nhóm người
dùng
4 ID Người dùng
21 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
CHƯƠNG 2: TÌM HIỂU VỀ NGÔN NGỮ PYTHON VÀ
FRAMEWORK WEB2PY
2.1. Tìm hiểu về ngôn ngữ PYTHON
2.1.1. Khái niệm PYTHON
Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra
năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự
động; do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python
được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
22 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
Software Foundation quản lý. Theo đánh giá của Eric S. Raymond, Python là
ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới
học lập trình.
Cấu trúc của Python còn 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ư nhận định của chính Guido van Rossum trong một bài
phỏng vấn ông.
Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo
thời gian, nó đã “bành trướng” sang mọi hệ điều hành từ MS-DOS đến Mac OS,
OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát
triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van
Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt
trong việc quyết định hướng phát triển của Python
2.1.2. Lịch sử phát triển:
Sự phát triển Python đến nay có thể chia làm các giai đoạn:
Python 1: bao gồm các bản 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 tại
CWI (Centrum voor Wiskunde en Informatica - Trung tâm Toán-Tin học)
tại Amsterdam, Hà Lan. Vì nguyên nhân này, các phiên bản Python đầu
tiên đều do CWI phát hành. Phiên bản cuối cùng phát hành tại CWI là 1.2.
o Vào năm 1995, Guido chuyển sang Corporation for National
Research Initiatives (CNRI) ở Reston, Virginia. Tại đây, ông phát
hành một số phiên bản khác. Python 1.6 là phiên bản cuối cùng phát
hành tại CNRI.
o Sau bản phát hành 1.6, Guido rời bỏ CNRI để làm việc với các lập
trình viên chuyên viết phần mềm thương mại. Tại đây, ông có ý
tưởng sử dụng Python với các phần mềm tuân theo chuẩn GPL. Sau
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
23 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
đó, CNRI và Free Software Foundation (FSF) đã cùng nhau hợp tác
để làm bản quyền Python phù hợp với GPL. Cùng năm đó, Guido
được nhận giải thưởng FSF Award for the Advancement of Free
Software.
o Phiên bản 1.6.1 ra đời sau đó là phiên bản đâu tiền tuân theo bản
quyền GPL. Tuy nhiên, bản này hoàn toàn giống bản 1.6, trừ một số
sửa lỗi cần thiết.
Python 2: vào năm 2000, Guido và nhóm phát triển Python dời đến
BeOpen.com và thành lập BeOpen PythonLabs team. Phiên bản Python
2.0 được phát hành tại đây. Sau khi phát hành Python 2.0, Guido và các
thành viên PythonLabs gia nhập Digital Creations.
oPython 2.1 ra đời kế thừa từ Python 1.6.1 và Python 2.0. Bản quyền
của phiên bản này được đổi thành Python Software Foundation
License. Từ thời điểm này trở đi, Python thuộc sở hữu của Python
Software Foundation (PSF), một tổ chức phi lợi nhuận được thành
lập theo mẫu Apache Software Foundation.
Python 3: Về sự phát triển của Python trong tương lai, các nhà phát
triển vẫn đang thảo luận về phiên bản mới: Python 3.0 (dự án gọi là
Python 3000 hoặc Py3K). Dự kiến, dòng 3.x sẽ không hoàn toàn tương
thích với dòng 2.x. Nhóm phát triển cho biết sẽ lấp những chỗ hở của
ngôn ngữ. Nguyên tắc chủ đạo để phát triển Python 3.x là "bỏ cách làm
việc cũ nhằm hạn chế trùng lặp về mặt chức năng của Python". Chính vì
vậy, tại thời điểm này python đã có phiên bản mới: python 3. Phiên bản
mới nhất của python tại thời điểm này là python 3.2.
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
24 | 45
ĐỒ ÁN TỐT NGHIỆP
Trang tin tức và module lấy tin tự động
2.1.3. Các phiên bản nổi tiếng của PYTHON
Cpython: Đây là phiên bản đầu tiên và được duy trì lâu nhất của
Python, được viết trong C. Những đặc điểm của ngôn ngữ mới xuất
hiện đầu tiên từ đây.
Jython: Là phiên bản Python trong môi trường Java. Bản này có thể
được sử dụng như là một ngôn ngữ script cho những ứng dụng Java.
Nó cũng thường được sử dụng để tạo ra những tests thử nghiệm cho
thư viện Java.
Python for .NET: Phiên bản này thật ra sử dụng phiên bản Cpython,
nhưng nó là một ứng dụng .NET được quản lý, và tạo ra thư viện
.NET sẵn dùng. Bản này được xây dựng bởi Brian Lloyd.
IronPython: Là một bản Python tiếp theo của .NET, không giống như
Python.NET đây là một bản Python hoàn chỉnh, tạo ra IL, và biên dịch
mã Python trực tiếp vào một tập hợp .NET.
PyPy: PyPy được viết trên Python, thậm chí cả việc thông dịch từng
byte mã cũng được viết trên Python. Nó sử dụng Cpython như một
trình thông dịch cơ sở. Một trong những mục đích của dự án cho ra
đời phiên bản này là để khuyến khích sự thử nghiệm bản thân ngôn
ngữ này làm cho nó dễ dàng hơn để sửa đổi thông dịch (bởi vì nó
được viết trên Python).
2.1.4. Sơ lược về PYTHON:
2.1.4.1. Từ khóa:
Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí
hiệu và cấu trúc cú pháp so với các ngôn ngữ khác. Python là một
ngôn ngữ phân biệt kiểu chữ. Như C/C++, các từ khóa của Python
đều ở dạng chữ thường. Dưới đây là hệ thống từ khóa chuẩn:
Hồ Hải Long – LỚP 47K KHOA CÔNG NGHỆ THÔNG TIN
25 | 45