Xây dựng ứng dụng web với Python + Flask Framework + Angular2 + DynamoDB – Phần 2

400

Ở bài viết trước mình đã hướng dẫn xong thiết lập cho cả front và server(tại đây). Để chuẩn bị tiếp cho các phần hay ho như xử lý authentication, sessions… thì ở bài viết này mình xin hướng dẫn cách kết nối và liên lạc giữa front-server bằng cách tạo trang CRUD đơn giản.

Tương tự như các hệ ứng dụng client-server khác. Ở hệ thống này chúng ta sẽ xây dựng api để nhận request và gửi lại response cho client.

Tạo component manage users.

Trong thư mục app chúng ta tạo thư mục login với 3 file login.component.ts, login.component.html và login.component.scss giống như thư mục home và thiết kế html, css và định nghĩa sẵn các method sẽ dùng cho công việc của mình.

Thêm 1 route cho trang manage users (url định nghĩa ở angular 2 và ở python phải giống nhau)

Tạo service xử lý request và nhận response từ server.

Từ thư mục app chúng ta tạo thư mục services và file users.service.ts để xử lý những gì liên quan đến user. Trong service này cũng sẽ chứa các phương thức tương ứng với các chức năng CRUD.

Thêm một vài module và component vừa tạo vào file app.module (Chức năng của các module này các bạn có thể tham khảo trên google nhé).

Tạo API.

- - - - - - - - - - - - - - - - - - - - Được tài trợ - - - - - - - - - - - - - - - - - - - -

Trước tiên chúng ta tạo 1 file config.py và định nghĩa các kiểu response trả về cho client. Chúng ta có thể tham khảo thêm các mã lỗi thông dụng và cũng có thể tự định nghĩa thêm các mã lỗi riêng để phục vụ cho 1 vài công việc cụ thể sau này.

Sau đó trong file app.py chúng ta thêm 1 vài thư viện và định nghĩa các api cho nó. Ở bài viết này mình tạm quản lý danh sách user trên một array có tên là list_users (Ở các bài viết tiếp thì mình sẽ hướng dẫn cách kết nối dynamodb và chúng ta sẽ thao tác trực tiếp trên db đó).

CRUD method.

Vậy là mọi thứ cơ bản nhất đã xong. Tiếp theo chúng ta sẽ thực hiện các method đã định nghĩa trong componennt manage_user được tạo ra ở bước 1.

Và đây là kết quả:

Để tiện cho các bạn tham khảo mình xin chia sẽ mã nguồn của project lên github và các bạn có thể xem tại đây.

Ở bài viết tiếp theo mình sẽ hướng dẫn cách xử lý authentication, session. Cảm ơn các bạn đã đón đọc và rất mong nhận được nhiều phản hồi của tất cả mọi người.