Framework web2py là một framework mó nguồn mở miễn phớ được phỏt triển bởi một cộng đồng cỏc chuyờn gia, giỏo sư đại học mỏy tớnh và cụng nghệ phần mềm. cho phộp mọi người phỏt triển một cỏch nhanh chúng, khả năng mở rộng cao, an toàn và cơ sở dữ liệu di động dựa trờn nền ứng dụng web.
Luụn luụn tương thớch ngược mó nguồn của phiờn bản cũ luụn chạy tốt và ổn định triờn phiờn bản mới.
Dễ dàng để chạy. Nú khụng yờu cầu phải cài đặt và cấu hỡnh khụng.
Chạy trờn Windows, Mac, Unix / Linux, Google App Engine, Amazon EC2, và hầu như bất kỳ trang web lưu trữ thụng qua 2.4/2.5/2.6/2.7 Python, hoặc Java với Jython.
Chạy với Apache, Lighttpd, Cherokee và gần như bất kỳ mỏy chủ web khỏc thụng qua CGI, FastCGI, WSGI, mod_proxy, và / hoặc mod_python. Nú cú thể nhỳng cỏc ứng dụng của bờn thứ ba WSGI và trung.
Giao tiếp với SQLite, PostgreSQL, MySQL, MSSQL, Firebird, Oracle, IBM DB2, Informix, Ingres, và Google App Engine.
Ứng dụng mụ hỡnh MVC (Model-View-Controller) làm cho mó nguồn dễ đọc hơn, khả năng mở rộng, và bảo trỡ.
Giao tiếp với nhiều giao thức HTML / XML, RSS / ATOM, RTF, PDF, JSON, AJAX, XML-RPC, CSV, REST, Wikipedia tiếng Việt, Flash / AMF, và liờn kết dữ liệu (RDF).
Tớch hợp một cơ sở dữ liệu quan hệ, một mụi trường phỏt triển tớch hợp dựa trờn web và quản lý dựa trờn giao diện web, hỗ trợ quốc tế, phương phỏp xỏc thực nhiều, kiểm soỏt truy cập dựa trờn vai trũ, phương phỏp nhiều bộ nhớ đệm cho khả năng mở rộng, thư viện jQuery cho AJAX và cỏc hiệu ứng
MCV (Model View Controller) là tờn một phương phỏp chia nhỏ một ứng dụng thành ba thành phần để cài đặt, mỗi thành phần đúng một vai trũ khỏc nhau và ảnh hưởng lẫn nhau, đú là models, views, và controllers.
Models (Tầng dữ liệu): là một đối tượng hoặc một tập hợp cỏc đối tượng biểu diễn cho phần dữ liệu của chương trỡnh, vớ dụ như cỏc dữ liệu được lưu trong database, dữ liệu từ một hệ
nỳt bấm, hộp đối thoại, chọn lựa …, để người dựng cú thể thờm, xúa. sửa, tỡm kiếm và làm cỏc thao tỏc khỏc đối với dữ liệu trong hệ thống.. Thụng thường, cỏc thụng tin cần hiển thị được lấy từ thành phần Models.
Controllers (Tầng điều khiển): chịu trỏch nhiệm xử lý cỏc tỏc động về mặt giao diện, cỏc thao tỏc đối với models, và cuối cựng là chọn một view thớch hợp để hiển thị ra màn hỡnh. Trong kiến trỳc MVC, view chỉ cú tỏc dụng hiển thị giao diện mà thụi, cũn điều khiển dũng nhập xuất của người dựng vẫn do Controllers đảm trỏch.
2.1.4. Cơ sở dữ liệu trong web2py:
Web2py cung cấp một lớp cơ sở dữ liệu trừu tượng Database Abstraction Layer (DAL), cựng với một số API liờn kết cỏc đối tượng và thể hiện chỳng vào trong cơ sở dữ liệu dưới dạng cỏc bảng và bản ghi.
Web2py cung cấp cỏc API để cú thể làm việc với rất nhiều hệ quản trị cơ sở dữ liệu như SQLite, MySQL, Oracle, MSSQL, DB2, …v…v Trong phiờn bản dành cho windows thỡ web2py đó tớch hợp một hệ quản trị cơ sở dữ liệu SQLite, chỳng ta cú thể sử dụng nú ngay trờn trỡnh duyệt của mỏy tớnh mỡnh. Trong tài liệu về đồ ỏn tốt nghiệp thỡ em chỉ trỡnh bày về cỏch thức làm việc với SQLite trờn framework web2py.
2.1.4.1. Khai bỏo cơ sở dữ liệu:
Chỳng ta khai bỏo cơ sở dữ liệu bằng cõu lệnh: Db = DAL(‘sqlite://storage.db’)
MySQL mysql://username:password@localhost/test PostgreSQL postgres://username:password@localhost/test MSSQL mssql://username:password@localhost/test FireBird firebird://username:password@localhost/test Oracle oracle://username/password@test DB2 db2://username:password@test Ingres ingres://username:password@localhost/test Informix informix://username:password@test 2.1.4.2. Cỏc kiểu dữ liệu:
String IS_LENGTH(length) default length is 512
Text IS_LENGTH(65536)
Blob None
Boolean None
Integer IS_INT_IN_RANGE(-1e100, 1e100)
Double IS_FLOAT_IN_RANGE(-1e100, 1e100)
decimal(n,m) IS_DECIMAL_IN_RANGE(-1e100, 1e100)
date IS_DATE()timeIS_TIME() datetime IS_DATETIME() password None upload None reference <table>IS_IN_DB(db,'<table>.id') list:string None list:integer None
Khi làm việc với bảng thỡ web2py cung cấp cỏc phương thức:
o Insert: dựng để thờm một bản ghi Vớ dụ: thờm một bản ghi mới Db.mytable.insert(‘value’)
o Delete: dựng để xúa dữ liệu Vớ dụ: xúa bản ghi cú id = 5 Db(db.mytable.id ==5).delete()
o Update: dựng để sửa dữ liệu Vớ dụ: sửa bản ghi cú id = 5
Db(db.mytable.id ==5).update(myfield=’new value’)
o Truncate: Dựng để xúa hết dữ liệu trong bảng Vớ dụ: xúa hết dữ liệu trong bảng mytable Db.mytable.truncate()
o Drop: Dựng để xúa bảng Vớ dụ: xúa bảng mytable Db.mytable.drop()
o Và đặc biệt là phương thức import_from_csv_file dựng để import dữ liệu từ bờn ngoài vào cơ sở dữ liệu thụng qua cỏc file
3.1. Thiết kế
3.1.4. Chi tiết bài bỏo
3.1.6. Trang lấy tin tức
3.1.8. Quản lý danh sỏch bỏo chớ
3.2. Cài đặt
Tải web2py tại địa chỉ www.web2py.com giải nộn và chạy file web2py.exe để khởi động server local
Copy source code của trang tin tức vào thư mục applications và truy cập vào trang theo địa chỉ 127.0.0.1:8000/tờn ứng dụng
KẾT LUẬN
Sau một thời gian nghiờn cứu, em cũng đó hoàn thành đề tài của mỡnh.
Cỏc kết quả chớnh đó đạt được trong đồ ỏn là:
Trỡnh bày cơ bản về ngụn ngữ PYTHON
Trỡnh bày cỏch sử dụng ngụn ngữ PYTHON và SQLite trờn framework WEB2PY
Hoàn thành module lấy tin bài tự động từ cỏc trang tin khỏc ở trờn mạng về trang tin tức của mỡnh. Tạo thuận lợi cho người quản trị trong việc cập nhật cỏc tin bài mới cho trang tin của mỡnh.
Hoàn thành được trang tin tức để hiển thị cỏc tin tức mà module lấy tin tự động đó lấy tin tức về. Sắp xếp tin tức theo cỏc chuyờn mục tạo điệu kiện thuận lợi cho người đọc. Ngoài ra trang tin cũn cung cấp chức năng tỡm kiếm cho
Nghiờn cứu sõu hơn về ngụn ngữ PYTHON, framework web2py và cỏc ứng dụng khỏc để xõy dựng tiếp module lấy tin tự động.
Tiếp tục phỏt triển thờm module lấy tin bài để module cú thể tự tỡm kiếm được tin là mỡnh cần lấy với cỏc từ khúa đặt ra.
Tuy đó cú nhiều nỗ lực nhưng do chưa thực sự cú kinh nghiệm nhiều trong việc thiết kế website nờn cũn cú nhiều thiếu sút. Rất mong được sự đúng ý kiến của thầy cụ và cỏc bạn sinh viờn để đề tài của em được hoàn thiện hơn.
Em xin chõn thành cảm ơn sự giỳp đỡ tận tỡnh của thầy giỏo TS. Nguyễn
Trung Hũa, đó đúng gúp những ý kiến quý bỏu giỳp em cú thể hoàn thành để
tài của mỡnh. Một lần nữa em xin chõn thành cảm ơn !
Sinh viờn thực hiện:
Hồ Hải Long
TÀI LIỆU THAM KHẢO
1. www.python.com Tài liệu online về ngụn ngữ python
2. www.web2py.com Tài liệu online về framework web2py