Bài api bình python

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)
6

Phả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.
 
$ 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
0

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à 3
Vớ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ề.

$ 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
9

 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.

#!flask/bin/python
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(debug=True)
1

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)
4



chia sẻ

Nhãn

API python RESTful

Nhã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 "

Cách sử dụng sys. argv trong python. hệ thống. argv là một danh sách [list] trong python, nó được sử dụng khi bạn chạy một dòng lệnh bất kỳ dòng lệnh nào trên hệ thống. Và đối số này được đưa vào script python để thực thi khi chạy câu lệnh. Ví dụ. hệ thống python. argv arg1 arg2 Trước tiên bạn phải nhập mô-đun sys trong tập lệnh. import sys print "Đây là tên của tập lệnh. " , hệ thống. argv [ 0 ] print "Số đối số. " , len ( sys. argv ) in "Các đối số là. " , str ( sys. argv ) Name of this script. sys argv. py Number arg is. 1 Arg is. ['sys argv. py'] python test1020. py 111 Đây là tên của tập lệnh. kiểm tra1020. py Số đối số. 2 Các đối số là. ['test1020. py', '111']