Flask là một khung công tác web Python phổ biến, có nghĩa là nó là một thư viện Python của bên thứ ba được sử dụng để phát triển các ứng dụng web
Bạn sẽ tìm thấy gì ở đây?
Nếu bạn là người mới sử dụng Flask, chúng tôi khuyên bạn nên bắt đầu với khóa học Real Python để có nền tảng vững chắc về phát triển web bằng Python. Hầu hết các hướng dẫn trong phần này là các bài viết từ trung cấp đến nâng cao bao gồm các khía cạnh chính của quá trình phát triển Flask như
Thiết kế một RESTful API bằng python và jar
31 tháng 7, 2018
Như các bạn đã biết, REST viết tắt bởi Chuyển trạng thái đại diện. Bạn có thể tham khảo thêm tại đây.
Trượt REST là gì.
Có 6 yếu tố của REST như sau.
1. Máy khách-Máy chủ. phía máy chủ phục vụ như một dịch vụ còn phía máy khách sẽ sử dụng dịch vụ này.
2. không quốc tịch. Mỗi yêu cầu từ máy khách phải chứa tất cả các thông tin mà phía máy chủ yêu cầu phải có. Nói nôm na là mỗi yêu cầu chứa các thông tin riêng rẽ không liên quan đến các yêu cầu khác.
3. Có thể lưu vào bộ nhớ đệm. Phía máy chủ phải cảnh báo chỉ ra cho phía máy khách biết là yêu cầu có bộ nhớ cache hay không.
4. Layer system system. Giao tiếp giữa phía máy chủ và phía máy khách có thể thông qua lớp trung gian ở giữa để trả lời các yêu cầu được gọi mà không cần phía máy khách phải thực hiện các tác vụ khác nữa.
5. Các cổng giao tiếp giống nhau. Các phương thức giao tiếp giữa máy khách và máy chủ là khuôn mẫu giống nhau.
6. Mã linh động. Phía máy chủ có thể thực hiện cuộc thi cho một API gọi duy nhất mà không ảnh hưởng đến các API khác.
Dịch vụ web RESTful là gì.
Kiến trúc REST bắt nguồn từ công việc thiết kế sao cho phù hợp với giao thức HTTP thông dụng nhất.
Phương thức phương thức HTTP có các định dạng sau.
Phương thức HTTP
ActionExamplesGETLấy những thông tin này từ URI [tài nguyên]http. //thí dụ. com/api/orders
[truy xuất danh sách đơn hàng]GETLấy những thông tin từ URI [tài nguyên]http. //thí dụ. com/api/orders/123
[truy xuất đơn đặt hàng #123]POSTTạo tài nguyên mớihttp. //thí dụ. com/api/orders
[tạo đơn hàng mới, từ dữ liệu được cung cấp cùng với yêu cầu]PUTCcập nhật một tài nguyên đã có http. //thí dụ. com/api/orders/123
[cập nhật đơn hàng #123, từ dữ liệu được cung cấp cùng với yêu cầu]DELETEXóa một tài nguyênhttp. //thí dụ. com/api/orders/123
[xóa đơn đặt hàng #123]
REST không yêu cầu định dạng dữ liệu đặt biệt, thông thường thì trả về định dạng JSON hoặc .
Thiết kế cơ sở API.
Hiện tại ta đang viết một ứng dụng To Do List có URL như sau.
______0
URI bạn đặt sao cho nhà phát triển có thể nhìn vào để biết đó là ứng dụng gì, và phiên bản cho API đó là bao nhiêu để sau này các nhà phát triển có thể dễ dàng cập nhật cho sau này.
Tiếp theo là ta chọn tài nguyên cho ứng dụng này.
Thử viết ra một danh sách các nhiệm vụ API nhé.
Phương thức HTTP
URIActionGEThttp. //[tên máy chủ]/todo/api/v1. 0/tasksTruy xuất danh sách nhiệm vụGEThttp. //[tên máy chủ]/todo/api/v1. 0/t task/[task_id]Truy xuất tác vụPOSThttp. //[tên máy chủ]/todo/api/v1. 0/tasksTạo một nhiệm vụ mớiPUThttp. //[tên máy chủ]/todo/api/v1. 0/t task/[task_id]Cập nhật tác vụ hiện cóDELETEhttp. //[tên máy chủ]/todo/api/v1. 0/tasks/[task_id]Xóa tác vụ
Bạn thấy URI 1 và 3 giống nhau nhưng phương thức khác nhau. Một cái là NHẬN thông tin và cái còn lại là tạo một thông tin.
Các phương thức còn lại chắc chắn dễ dàng phải không.
Trong mỗi nhiệm vụ có các thông tin. Trong thông tin có các trường thông tin. Bạn hãy thử tưởng tượng 1 nhân viên công ty có những thông tin cơ bản nào không?
Và đây là những thông tin cơ bản.
- id. number of list duy nhất cho task. kiểu số.
- Tiêu đề. mô tả tóm tắt nhiệm vụ. loại chuỗi
- sự mô tả. các cụ thể mô tả có thể thay thế. Dạng văn bản
- xong. status of task. kiểu Boolean
Và bạn cần phải định nghĩa kiểu dữ liệu cho các trường thông tin trên.
Giới thiệu về jar microframework của python.
Flask là web framework của python. small compact and strong protection.
Bài viết này mình chỉ hướng dẫn bạn cài đặt jar trên linux.
$ mkdir todo-api $ cd todo-api $ virtualenv flask New python executable in flask/bin/python Installing setuptools............................done. Installing pip...................done. $ flask/bin/pip install flask
Trên windows, bạn có thể cài đặt Cygwin
Sau khi cài đặt xong bình trên máy tính của bạn, bây giờ bạn có thể tạo một tệp python bất kỳ, sau đây mình đặt tên cho . py
Có nội dung sau.
______2
Bạn muốn sử dụng jar framework thì bạn phải nhập thư viện jar vào trong mã.
Và định nghĩa app = Flask[__name__]
Cuối đoạn mã thì thực thi nó.
______3
To run code has been write you run as after.
______4
_______6
Chmod cho tập tin đó có quyền thực thi,Khi chạy, bạn truy cập trên trình duyệt web
#!flask/bin/python
from flask import Flask
app = Flask[__name__]
@app.route['/']
def index[]:
return "Hello, World!"
if __name__ == '__main__':
app.run[debug=True]
5để xem kết quả.
Bắt tay vào viết một API.
Viết một API thì dễ hơn là viết một trang web ứng dụng. Trở lại với ứng dụng To Do List phía trên, thì phải xóa thêm, chỉnh sửa, lấy thông tin của nhiệm vụ, do đó cần phải lưu trữ các dữ liệu vào cơ sở dữ liệu nhưng việc phân tích cơ sở dữ liệu nằm ngoài bài viết này thì nên .
#!flask/bin/python from flask import Flask, jsonify app = Flask[__name__] tasks = [ { 'id': 1, 'title': u'Buy groceries', 'description': u'Milk, Cheese, Pizza, Fruit, Tylenol', 'done': False }, { 'id': 2, 'title': u'Learn Python', 'description': u'Need to find a good Python tutorial on the web', 'done': False } ] @app.route['/todo/api/v1.0/tasks', methods=['GET']] def get_tasks[]: return jsonify[{'tasks': tasks}] if __name__ == '__main__': app.run[debug=True]
Ta tạo một dãy các thư viện, mỗi một mục nhập trong một dãy [mảng ] có các trường mà ta đã định nghĩa phía trên.
Thay vì lập chỉ mục cho trang đầu tiên, ta có thể thay thế bằng tác vụ nhiệm vụ bằng phương thức GET with URI.
#!flask/bin/python
from flask import Flask
app = Flask[__name__]
@app.route['/']
def index[]:
return "Hello, World!"
if __name__ == '__main__':
app.run[debug=True]
6Phản hồi trả về trong trường hợp này là json, ta có thể dùng trình duyệt web để kiểm tra phản hồi trả về nhưng điều đó không quan trọng phải là ý kiến tốt mà ta nên dùng lệnh curl để yêu cầu được xem .
Hiện tại ta có thể áp đặt nhiệm vụ GET as after.
0$ mkdir todo-api $ cd todo-api $ virtualenv flask New python executable in flask/bin/python Installing setuptools............................done. Installing pip...................done. $ flask/bin/pip install flask
chúng ta chỉ định một đối số task_id và sử dụng vòng lặp để tìm đúng ID nhiệm vụ cho bất kỳ nhiệm vụ nào của nhiệm vụ đó.
Và lỗi 404 sẽ trả về nếu ta gán task_id không tồn tại trong cơ sở dữ liệu.
______11
Phía trên ta kiểm tra với task_id là 2 và 3Với task_id là 3 ta sẽ nhận về lỗi 404.
Và như ta thấy thì 404 trả về theo dạng HTML, nếu ta muốn lỗi 404 trả về theo dạng json thì ta viết thêm hàm sau.
______15
And check in curl.
______16
Bạn chưa thấy định dạng json trả về.
Now is write a POST function as after.
______17
Như đoạn mã trên bạn chỉ thấy là task_id được +thêm 1. And the request number. json, yêu cầu. json. get
Please look up information as after.
______18
tiêu đề được gán là "Đọc sách"
Và bạn đã thấy kết quả được trả về.
9$ mkdir todo-api $ cd todo-api $ virtualenv flask New python executable in flask/bin/python Installing setuptools............................done. Installing pip...................done. $ flask/bin/pip install flask
id was added 1 with the last id.
Trường done mặc định là false và mô tả là trống.
Trên cửa sổ, bạn sử dụng Cygwin chú ý tới các dấu nháy.
______20
Kiểm tra lại bạn sẽ thấy.
1#!flask/bin/python from flask import Flask app = Flask[__name__] @app.route['/'] def index[]: return "Hello, World!" if __name__ == '__main__': app.run[debug=True]
id. 3đã được thêm vào.
Còn lại 2 hàm.
______22
Trong đoạn mã trên ta thấy nó phức tạp, thực chất là không vì nó chỉ lồng các điều kiện vào để chuyển hướng về các trang 404 , 400
Ví dụ ta kiểm tra.
______23
Bây giờ thì bạn có thể viết 1 REST API cơ bản rồi phải không ? Easy ! Happy coding. :] :] :]
#!flask/bin/python
from flask import Flask
app = Flask[__name__]
@app.route['/']
def index[]:
return "Hello, World!"
if __name__ == '__main__':
app.run[debug=True]
4chia sẻ
Nhãn
API python RESTfulNhãn. API python RESTful
chia sẻ
Trang web trung bình. com chết, vì sao ?
tháng 12 08, 2020
Vừa phải. com là trang web có những bài viết về CNTT, phần mềm và công nghệ nói chung rất phổ biến và chất lượng. Nhưng khoảng 1 tuần nay không vào được cả mạng viettel và 4G của điện thoại Mobi. Dân Nó thường tham khảo các bài viết trên trang này. Nhiều bài viết hay và chất lượng. là một nền tảng dữ liệu lớn cho dân IT nhưng đã bị ngăn chặn. Các bài viết này thường thì có tính quy chuẩn và dài hơn, các chủ đề có chất lượng hơn vậy với stackoverflow. Nhưng subdomain thì vẫn truy cập được như cũ. https. //Về. vừa phải. com Bạn có thể tham khảo lý do vì sao trung bình. com bị chặn ở Việt Nam. tại trang tinh tế. Nói chung mình không thích điều này. https. //tinh tế. vn/thread/website-trung-khong-truy-cap-duoc-la-do-website-chet-hay-chan-ip-viet-nam-nhi. 3231608/
chia sẻ
Đăng nhận xétĐọc thêm "
GitHub Actions là gì ?
tháng 9 18, 2020
Như ta đã biết github là nới chứa mã nguồn nổi tiếng thế giới hiện nay, ngoài github còn có gitlab, bitbucket, codecommit,. Cơ bản github miễn phí cho nhà phát triển người dùng, nếu nhu cầu sử dụng nhiều repo cũng như dự án có nhiều thành viên nhà phát triển tham gia thì bạn có thể mua bản nâng cao. Về tiến trình quy trình CI/CD, chúng ta có thể biết đến như Jenkins, Team City, Codepipeline trên AWS,. GitHub Actions mới ra đời gần đây , ngày 13 tháng 11 năm 2019, GitHub Actions ra phiên bản đầu tiên, trước đó khoảng 1 năm bản beta ra đời. Tham khảo tại đây. https. //github. blog/2019-08-08-github-actions-now-supports-ci-cd/ GitHub Actions khá đơn giản, khi quá trình xây dựng, thử nghiệm và triển khai được viết trong một tệp có định dạng yaml nằm trong thư mục. github/workflows/ in main source code your. GitHub Actions là một sự kiện hướng đến, nghĩa là chương trình chạy một loạt các dòng lệnh khi bạn nhận được 1 sự kiện, ví dụ như mỗi lần một nhà phát triển nào đó tạo một yêu cầu kéo cho một kho lưu trữ
chia sẻ
Đăng nhận xétĐọc thêm "