1. Trang chủ
  2. » Luận Văn - Báo Cáo

Creating restful web applications with flask

12 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Creating Restful Web Applications With Flask
Tác giả Nguyễn Quốc Tuấn
Người hướng dẫn ThS. Trần Kim Mỹ Vân
Trường học Trường Đại Học Văn Lang
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Đồ Án
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 1,5 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Từ việc cung cấp dữ liệu theo thời gian thực đến xử lý yêu cầu từ phía người dùng, ứng dụng RESTful có thể là một công cụ hiệu quả giúp doanh nghiệp hoặc tổ chức tương tác với khách hàng

Trang 1

TRƯỜNG ĐẠI HỌC VĂN LANG

KHOA CÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC VĂN LANG

KHOA CÔNG NGHỆ THÔNG TIN

8

Chủ đề:

CREATING RESTFUL WEB APPLICATIONS WITH FLASK

SVTH: Nguyễn Quốc Tuấn MSSV: 2274802010967 GVHD: ThS Trần Kim Mỹ Vân

BÁO CÁO ĐỒ ÁN MÔN HỌC

LẬP TRÌNH PYTHON NÂNG CAO

TP Hồ Chí Minh – năm 2024

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN 2

1.1 Giới thiệu 2

1.2 Mục tiêu 2

1.2.1 Nắm vững kiến thức chuyên môn: 2

1.2.2 Phát triển kỹ năng 3

1.3 Các công nghệ chính 3

CHƯƠNG 2: QUY TRÌNH HOẠT ĐỘNG 5

2.1 Quy trình 5

2.2 Chức năng 5

2.3 Ưu điểm/ nhược điểm 6

Ưu điểm: 6

Nhược điểm: 6

CHƯƠNG 3: KẾT LUẬN 7

CHƯƠNG 4: DEMO 8

Trang 3

L I Ờ M Đ U Ở Ầ

Chào mừng mọi người đến với đồ án xây dựng ứng dụng RESTful Web Application của mình! RESTful Web Application, hay ứng dụng web dựa trên kiến trúc REST, đang trở thành một giải pháp phổ biến trong nhiều lĩnh vực kinh doanh và đời sống nhờ khả năng linh hoạt và tương tác dễ dàng qua các giao thức web Từ việc cung cấp dữ liệu theo thời gian thực đến xử lý yêu cầu từ phía người dùng, ứng dụng RESTful có thể là một công cụ hiệu quả giúp doanh nghiệp hoặc tổ chức tương tác với khách hàng một cách nhanh chóng

và mượt mà Trong đồ án này, chúng ta sẽ xây dựng một RESTful Web Application với Flask, một framework web mạnh mẽ và dễ sử dụng trong Python Flask hỗ trợ tích hợp với các công nghệ tiên tiến như xử lý ngôn ngữ tự nhiên hay cơ sở dữ liệu, giúp chúng ta dễ dàng phát triển các ứng dụng linh hoạt và mở rộng theo nhu cầu thực tiễn Kiến trúc RESTful giúp ứng dụng của bạn dễ dàng xử lý các yêu cầu từ phía người dùng, mang lại trải nghiệm thân thiện và hiệu quả Với việc áp dụng Flask để xây dựng RESTful API, đồ án này sẽ giúp bạn hiểu sâu về cách phát triển các ứng dụng web hiện đại, khám phá những tiềm năng mà RESTful Web Application mang lại và tạo ra các giải pháp sáng tạo đáp ứng nhu cầu ngày càng cao của thế giới số hóa Hãy cùng khám phá và trải nghiệm những điều tuyệt vời mà kiến trúc RESTful và Flask mang lại cho ứng dụng

1

Trang 4

CH ƯƠ NG 1: T NG QUAN Ổ

1.1 Giới thiệu

Vào thời điểm hiện tại, việc kết nối và giao tiếp trực tuyến đã trở nên phổ biến Các ứng dụng chat, nền tảng mạng xã hội đã trở thành công cụ không thể thiếu trong cuộc sống con người Dồ án này nhằm mục tiêu xây dựng một ứng dụng web chat room đơn giản, cho phép người dùng kết nối và trò chuyện với nhau trong thời gian thực Ứng dụng được phát triển dựa trên framework Flask của Python, tận dụng sức mạnh của RESTful API và SocketIO

để tạo ra trải nghiệm giao tiếp liền mạch và hiệu quả

1.2 Mục tiêu

1.2.1 N m v ng ki n th c chuyên môn: ắ ữ ế ứ

REST API là gì? Thiết kế REST hoặc RESTful API (State Representational State Transfer) được thiết kế để tận dụng các giao thức hiện có Mặc dù REST có thể được sử dụng trên hầu hết các giao thức nhưng HTTP vẫn được sử dụng phổ biến khi sử dụng API web Điều này

có nghĩa là các nhà phát

triển không cần phải cài

đặt thêm thư viện hoặc

phần mềm để tận dụng

thiết kế REST API Điều

đáng chú ý là lớp cực kỳ

linh hoạt của nó Vì dữ

liệu không bị ràng buộc

với các phương thức và tài

nguyên nên REST có thể

xử lý nhiều loại lệnh gọi,

trả về các định dạng dữ

liệu khác nhau và thậm chí

sửa đổi cấu trúc bằng cách triển khai hypermedia phù hợp Sự tự do và linh hoạt trong thiết

kế API REST cho phép bạn tạo một API đáp ứng nhu cầu của bạn đồng thời đáp ứng nhu cầu của nhiều khách hàng khác nhau Không giống như SOAP, REST không giới hạn ở XML mà có thể trả về XML, JSON, YAML hoặc bất kỳ định dạng nào khác tùy theo nhu cầu của khách hàng Và không giống như RPC, người dùng không được mờinhận biết tên của thủ tục hoặc các tham số cụ thể theo một thứ tự cụ thể

Để tạo một REST API đơn giản sử dụng python, chúng ta cần những thứ sau:

 Python

 Flask

 Flask-SQLAIchenmy

 Flask-Restful

 Sqlite3

 Jsonify

2

Trang 5

Flask là gì? Flask là loại framework web phổ biến được viết bằng ngôn ngữ lập trình Python Công nghệ thường được sử dụng để xây dựng trang web từ những ứng dụng đơn giản đến những hệ thống phức tạp

Flask được thiết kế để hoạt động và mở rộng, đồng thời nó cũng cung cấp các công cụ và thư viện cần thiết để phát triển ứng dụng web hiệu quả Fask cũng có cộng đồng sáng tạo và

hỗ trợ mạnh mẽ từ cộng đồng Python

Ai là người tạo ra Flask? Flask được tạo ra bởi Armin Ronacher, một nhà phát triển phần mềm người Đức vào năm 2010 Anh ấy đã phát triển Flask với mục tiêu tạo ra một framework đơn giản nhưng mạnh mẽ để phát triển ứng dụng web bằng Python Quá trình phát triển Flask được với mục đích đơn giản hóa các yêu cầu mã nguồn yêu cầu, tạo ra một khung hoạt động và dễ dàng tiếp cận

Flask được phát triển theo ý tưởng "Micro - Framework", công nghệ tập trung vào các tính năng cơ bản và linh hoạt để các nhà phát triển có thể tùy chỉnh theo nhu cầu của họ Điều này đã giúp Flask trở thành một trong những framework web Python phổ biến nhất và được

ưa chuộng trong cộng đồng phát triển phần mềm

SocketIO là gì?

SocketIO là một thư viện cho phép kết nối với dộ trễ thấp, hai chiều và hoạt động trên hướng sự kiện giữa client và server

SocketIO hỗ trợ một tính năng phong phú khiến nó trở thành lựa chọn phù hợp chpo các nhà phát triển muốn xây dựng các ứng dụng yêu cầu cập nhật dữ liệu tức thời

1.2.2 Phát tri n kỹ năng ể

Thiết kế và phát triển ứng dụng web: Áp dụng kiến thức về Flask và RESTful API để thiết

kế và xây dựng backend của ứng dụng chat Room

Xây dựng chức năng chat thời gian thực: Sử dụng SocketIO để tạo ra chức năng chat thời gian thực, cho phép người dùng trao đổi thông tin nhanh chóng và mượt mà

Quản lý dữ liệu: Xây dựng logic để quản lý dữ liệu người dùng, phòng chat và tin nhắn, đảm bảo tính bảo mật và hiệu quả

Thiết kế giao diện người dùng: Sử dụng template Jinja2 để tạo ra giao diện người dùng đơn giản đẹp mắt, dễ sử dụng và thu hút

1.3 Các công nghệ chính

Python: Ngôn ngữ lập trình chính được sử dụng trong dự án

Flask: Framework web nhẹ nhàng và linh hoạt của Python, cung cấp khả năng xây dựng API RESTful hiệu quả

SocketIO: Thư viện Python mạnh mẽ cho phép truyền tải thông tin thời gian thực, là yếu tố chính tạo nên tính năng chat của ứng dụng

3

Trang 6

Jinja2: Template engine của Python, hỗ trợ việc tạo ra giao diện người dùng động và dễ quản lý

HTML, CSS, JavaScript: Các ngôn ngữ web cơ bản được sử dụng để xây dựng giao diện người dùng cho ứng dụng

4

Trang 7

CH ƯƠ NG 2: QUY TRÌNH HO T Đ NG Ạ Ộ

2.1 Quy trình

2.1.1 User Sends a Message (Người dùng gửi tin nhắn):

Người dùng nhập nội dung tin nhắn vào giao diện và nhấn gửi Tin nhắn được gửi từ client đến máy chủ (Flask server) thông qua Socket.IO với một sự kiện gửi tin nhắn (send_message event)

2.1.2 SocketIO Receives and Processes the

Message (Socket.IO nhận và xử lý tin nhắn):

Trên server Flask, SocketIO nhận dữ kiện

send_message chứa nội dung tin nhắn và

thông tin về người nhận Server kiểm tra dữ

liệu để đảm bảo rằng tin nhắn hợp lệ và

người nhận có trong hệ thống

2.1.3 SocketIO Relays the Message to the

Recipient (Socket.IO chuyển tiếp tin nhắn

đến người nhận):

Sau khi tin nhắn được xử lý, Socket.IO phát

(broadcast) tin nhắn tới người nhận Nếu

người nhận đang trực tuyến, tin nhắn sẽ được

gửi ngay lập tức đến client của người nhận

thông qua kết nối WebSocket

2.1.4 Recipient Receives and Views the Message (Người nhận nhận và xem tin nhắn):

Tin nhắn sẽ hiển thị ngay lập tức trong giao diện của người nhận, tạo trải nghiệm nhắn tin thời gian thực Điều này đảm bảo rằng tin nhắn xuất hiện mà không cần phải làm mới trang, và cả người gửi và người nhận đều có thể nhìn thấy tin nhắn tức thì

2.2 Chức năng

Chức năng gửi và nhận tin nhắn:

+ Gửi tin nhắn: Cho phép người dùng gửi tin nhắn đến người dùng khác qua Socket.IO truyền tải nhanh và tức thì

+ Nhận tin nhắn: Tin nhắn từ người gửi sẽ được chuyển đến người nhận ngay lập tức Chức năng tạo và quản lý phòng chat

+ Tạo phòng chat: Người dùng tạo phòng chat bằng cách nhập tên của mình sau đó tạo phòng Người dùng cũng có thể tạo mật mã của riêng cho phòng mình, để tiện hơn trong việc cho người khác vào phòng

5

Trang 8

Tham gia phòng chat: Người dùng muốn vào phòng trước tiên cũng phải nhập tên của mình, sau đó nhập mã của phòng mà mình muốn tham gia sau đó nhấn “Join a room” thì sẽ được đưa vào phòng và bắt đầu cuộc trò chuyện

2.3 Ưu điểm/ nhược điểm

Ưu điểm:

- Thời gian thực (Real-time): Sử dụng Socket.IO, ứng dụng/web có khả năng gửi và nhận tin nhắn ngay lập tức, giúp tạo ra trải nghiệm nhắn tin nhanh chóng và liền mạch cho người dùng

- Tính tương tác cao (Interactive): Với khả năng giao tiếp hai chiều, người dùng có thể nhận các thông báo tin nhắn(đã nhận, đã đọc) và trạng thái trực tuyến của bạn bè

- Dễ dàng mở rộng (Scalable): Flask và Socket.IO hỗ trợ mở rộng cho ứng dụng khi

số lượng người dùng và dữ liệu tăng lên Ứng dụng có thể được triển khai cùng với các công nghệ khác như Redis hoặc một dịch vụ đám mây để quản lý kết nối theo thời gian thực tốt hơn

Nhược điểm:

- Hiệu suất có hạn: Flask là framework phù hợp cho các dự án vừa và nhỏ, nhưng có thể gặp giới hạn về hiệu suất khi ứng dụng phát triển lớn hơn hoặc có nhiều kết nối đồng thời, đặc biệt khi không tối ưu hóa đúng cách

- Quản lý phiên và kết nối phức tạp: Với Socket.IO, việc duy trì kết nối liên tục (WebSocket) giữa các client và server đòi hỏi phải quản lý kỹ các phiên và kết nối, đặc biệt khi số lượng người dùng tăng cao

- Không hoàn toàn phù hợp cho ứng dụng/ dự án lớn: Flask là một framework nhẹ, nên có thể thiếu các tính năng tích hợp sẵn mà các framework lớn hơn cung cấp Điều này khiến việc phát triển ứng dụng lớn với Flask đòi hỏi nhiều tùy chỉnh và quản lý

- Bảo trì phức tạp: Khi ứng dụng mở rộng, việc duy trì và quản lý hệ thống có thể trở nên phức tạp, đặc biệt là với các kết nối WebSocket thời gian thực, đòi hỏi thiết lập thêm các công cụ giám sát và cân bằng tải

- Khả năng mất kết nối: Nếu không được xử lý đúng cách, các kết nối WebSocket có thể bị ngắt hoặc không ổn định khi gặp phải các vấn đề mạng, gây ảnh hưởng đến trải nghiệm nhắn tin của người dùng

6

Trang 9

CHƯƠNG 3: KẾT LUẬN

3.1 Kết quả đạt được

- Người dùng có thể tham gia và vào phòng chat với nhau

- Người dùng có thể gửi và nhận tin nhắn trong thời gian thực

- Giao diện người dùng đơn giản và thận thiện

3.2 Bài học kinh nghiệm

- Sử dụng framework Flask giúp đơn giản hóa quá trình xây dựng ứng dụng web, đặc biệt là ứng dụng RESTful

- SocketIO là công cụ hiệu quả để tạo ra các chức năng giao tiếp thời gian thực, đảm bảo việc truyền tải thông tin diễn ra nhanh chóng và mượt mà

- Template Jinja2 giúp tạo ra giao diện người dùng động và dễ quản lý, góp phần tạo nên trải nghiệm người dùng tích cực

3.3 Hướng phát triển

- Tính năng quản trị viên cho phép quản lý người dùng và phòng chat.Giúp đảm bảo

an ninh và kiểm soát hoạt động của ứng dụng

- Tính năng gửi file, hình ảnh, video, âm thanh để nâng cao tính tương tác và trao đổi thông tin đa dạng

- Tích hợp với các ứng dụng mạng xã hội khác

- Phát triển ứng dụng di động: Tạo ra ứng dụng di động cho iOS và Android để mở rộng phạm vi tiếp cận và cho phép người dùng truy cập ứng dụng trên nhiều thiết bị khác nhau

7

Trang 10

CH ƯƠ NG 4: DEMO

8

Trang 12

10

Ngày đăng: 23/12/2024, 12:54

w