Python có phải là api còn lại không?

Python đã nổi lên như một trong những ngôn ngữ lập trình phổ biến nhất trong hai thập kỷ qua. Một phần lý do cho điều này là do nó tập trung vào tính dễ đọc và dễ học. Trong những năm qua, Python đã được chấp nhận trong nhiều lĩnh vực thích hợp, chẳng hạn như các chương trình tiện ích và tự động hóa. Tuy nhiên, quan trọng nhất, nó đã nhận được sự ưu ái to lớn trong cộng đồng phân tích dữ liệu và lập trình khoa học

Ngoài ra, Python cũng đã phát triển với web. Từ những ngày đầu của Web1. 0 với những tiến bộ trong Web2. 0 cũng có kiến ​​trúc REST để xác định API, rất nhiều khung phát triển web dựa trên Python đã xuất hiện

Trong bài đăng trên blog này, chúng tôi xem xét trạng thái nghệ thuật hiện tại về các khung API REST dựa trên Python khi chúng tôi đề cập đến các khung API REST API mạnh mẽ và phổ biến nhất

Duyệt qua danh sách API miễn phí tốt nhất

Khả năng của Khung API REST

Một khung cung cấp một bộ công cụ và thư viện để hỗ trợ các lập trình viên đạt được mục tiêu. Chẳng hạn, nếu mục tiêu là phát triển một ứng dụng web, thì khung cung cấp các thư viện giúp giảm bớt nỗ lực mã hóa giao diện người dùng web hoặc phần phụ trợ hoặc cả hai. Trong trường hợp này, khung trừu tượng hóa sự phức tạp của việc đạt được các hoạt động riêng lẻ liên quan đến ứng dụng web và cung cấp mã soạn sẵn để đơn giản hóa logic lập trình. Ngoài ra, một số khung nâng cao cũng xác định cú pháp và quy tắc ngữ nghĩa của chúng để cấu trúc chương trình theo một cách cụ thể, để xác định mô hình phát triển phần mềm.

Tùy thuộc vào độ phức tạp và khả năng, khung có thể là một thư viện, một nhóm thư viện hoặc một bộ thư viện, tệp cấu hình và các công cụ như trình biên dịch, trình chuyển mã và các chương trình khác

Khi nói đến việc xây dựng API REST, các khung có thể cung cấp nhiều phương tiện khác nhau để hợp lý hóa các quy trình phát triển ứng dụng trên các hệ thống phụ phía máy khách và máy chủ của ứng dụng. Vì các API REST giống như các API Web, nên hầu hết các khung được nhắm mục tiêu để xây dựng các ứng dụng web, bao gồm các API Web. Thông thường, một khung web bao gồm nhiều thành phần khác nhau

Chức năng của từng thành phần có thể được mô tả như sau

Khách hàng

  1. giao diện người dùng. Thành phần này xác định lớp giao diện người dùng của khung, chịu trách nhiệm hiển thị ứng dụng khách, thường là trên trình duyệt web
  2. Kiểm soát truy cập. Thành phần này chịu trách nhiệm quản lý xác thực và phân quyền người dùng truy cập ứng dụng
  3. Ứng dụng. Đây là thành phần cốt lõi quản lý các chức năng liên quan đến ứng dụng như mẫu, điều hướng, ngoại lệ và ghi nhật ký
  4. HTTP. Thành phần này xử lý việc gửi yêu cầu HTTP và phân tích cú pháp phản hồi

Người phục vụ

  1. Phần mềm trung gian ứng dụng. Đây là mã ứng dụng xử lý logic nghiệp vụ phía máy chủ cho ứng dụng web. Thông thường, thành phần này chịu trách nhiệm tạo các đoạn mã HTML động để gửi tới máy khách để hiển thị giao diện người dùng dựa trên mẫu hoặc mẫu MVC [Trình điều khiển chế độ xem mô hình]. Nó cũng xử lý định dạng dữ liệu ứng dụng và xử lý ngoại lệ
  2. Dữ liệu. Thành phần này hoạt động như một lớp trừu tượng để lưu trữ/truy xuất dữ liệu từ cơ sở dữ liệu hoặc kho lưu trữ dữ liệu
  3. Kiểm soát truy cập. Thành phần này chịu trách nhiệm quản lý xác thực và ủy quyền của người dùng để truy cập tài nguyên phía máy chủ
  4. Khác/Tiện ích. Đây là một loạt các thư viện tiện ích và công cụ để hỗ trợ các tính năng bổ sung. Các tính năng này chủ yếu bao gồm xử lý phiên, bộ nhớ đệm, ghi nhật ký, quốc tế hóa, bản địa hóa và xử lý lỗi. Ngoài ra, một số khung cũng cho phép cung cấp các mô-đun có thể cắm được trong ứng dụng web
  5. Bảo vệ. Thành phần này chịu trách nhiệm về các biện pháp bảo mật cấp giao thức. Nó bao gồm hỗ trợ cho các biện pháp bảo mật liên quan đến HTTP như SSL, HTTPS, CORS. Nó cũng có thể bao gồm các biện pháp bảo mật nâng cao như giới hạn tốc độ hoặc các tính năng cụ thể để bảo mật cấp ứng dụng
  6. HTTP. Thành phần này xử lý các yêu cầu HTTP đến và ánh xạ chúng tới các tuyến thích hợp để thực thi logic nghiệp vụ của ứng dụng. Ngoài ra, nó có thể xử lý định dạng phản hồi và hỗ trợ cho các tiêu đề HTTP tùy chỉnh

Nếu một khung web bao gồm tất cả các thành phần, thì đó là khung web đầy đủ

Đối với các web framework xây dựng trên Python sẽ có một số thiếu sót nhất định. Vì Python không được sử dụng trong các trình duyệt nên vai trò của nó trong việc xây dựng các ứng dụng web giao diện người dùng là không. Tuy nhiên, Python vẫn được sử dụng để xây dựng các ứng dụng dòng lệnh và máy tính để bàn, có thể giao tiếp với phụ trợ API REST hiện có. Do đó, trong trường hợp của Python, phạm vi tổng thể của khung web nặng hơn máy chủ. Ở phía máy khách, phạm vi của Python bị giới hạn trong việc cung cấp các thư viện HTTP để thực hiện lệnh gọi API đến máy chủ

Tuy nhiên, nếu mục đích là xây dựng một phụ trợ API REST, thì cần ít thành phần hơn ở cuối máy chủ

Đối với API REST, Phần mềm trung gian ứng dụng không liên quan vì API REST không tạo chế độ xem HTML dành riêng cho ứng dụng

Ngoài ra, một số thành phần, chẳng hạn như Dữ liệu và Linh tinh/Tiện ích, là tùy chọn. Các full-stack framework thường có chúng. Tuy nhiên, có những khung vi mô không cung cấp các thành phần này và cung cấp cho nhà phát triển tùy chọn tích hợp với thư viện của bên thứ ba

Ví dụ: khung vi mô API REST dựa trên Python có thể không cung cấp thành phần dữ liệu. Trong trường hợp đó, nhà phát triển có thể sử dụng bộ công cụ SQLAlchemy, một thư viện cơ sở dữ liệu dựa trên Python phổ biến, để xây dựng thành phần dữ liệu tùy chỉnh để truy cập cơ sở dữ liệu

Ghi chú. Định nghĩa về các khung vi mô hơi mờ. Mặc dù hầu hết các khung vi mô đều có cách tiếp cận thiết kế theo quan điểm đối với một thành phần, nhưng một số trong số chúng cung cấp tất cả các thành phần với một bộ tính năng hoặc khả năng giảm so với các khung đầy đủ.   

Chọn khung API REST phù hợp

Vì vậy, bạn đã quyết định sử dụng Python trong dự án phần mềm tiếp theo của mình. Tuy nhiên, dự án được thiết kế dựa trên kiến ​​trúc API REST. Nếu bạn đang ở trong tình thế tiến thoái lưỡng nan về việc chọn khung API REST nào để xây dựng ứng dụng, thì chúng tôi sẽ giúp bạn

Việc lựa chọn REST API Framework bao gồm ba cân nhắc chính

  1. Vai diễn. Vai trò của khung. Nói một cách chính xác, đối với các ứng dụng web, vai trò có thể là máy khách hoặc máy chủ. Điều tương tự cũng áp dụng cho các API REST. Bạn đang sử dụng khung để gọi API REST từ phía máy khách hoặc triển khai giao diện API REST ở phía máy chủ
  2. Phạm vi. Điều này đề cập đến các thành phần bạn đang tìm kiếm trong ứng dụng. Nếu giao diện API REST của bạn là một phần của ứng dụng web chính thức, thì tốt hơn là sử dụng khung web ngăn xếp đầy đủ cho phép bạn xây dựng phần phụ trợ của ứng dụng web cùng với giao diện API REST. Mặt khác, để xây dựng giao diện API REST một mình, bạn có thể chọn một khung vi mô cung cấp các chức năng thiết yếu cần thiết để xây dựng cơ sở cho API REST
  3. Tỉ lệ. Quy mô đề cập đến khả năng của khung để xử lý một tải cụ thể. Trong phần mềm, điều này về cơ bản được xác định bởi sức mạnh tính toán và mức tiêu thụ bộ nhớ cần thiết. Chỉ số rõ ràng nhất về quy mô cho các ứng dụng dựa trên web là số lượng tương tác máy khách-máy chủ đồng thời mà máy chủ có thể xử lý. Việc xử lý tỷ lệ nằm ngoài phạm vi của các thành phần khung. Vấn đề này chủ yếu liên quan đến cơ sở hạ tầng và chiến lược triển khai của máy chủ ứng dụng. Tuy nhiên, để giữ mọi thứ trong tầm kiểm soát, bạn nên chọn một khung nhẹ và nhanh để nó không tiêu tốn quá nhiều tài nguyên máy chủ và không chặn các yêu cầu của máy khách quá lâu

Hơn hết, việc lựa chọn REST API framework cho dự án nào cũng bị chi phối bởi thời gian. Nếu bạn muốn xây dựng thứ gì đó nhanh chóng để làm bằng chứng về khái niệm, thì bạn sẽ chọn một khung vi mô. Tuy nhiên, nếu bạn đang lập kế hoạch cho một ứng dụng cấp sản xuất, bạn sẽ muốn dành chút thời gian để chọn khung ngăn xếp đầy đủ phù hợp và tăng tốc để học cách sử dụng nó. Hơn nữa, nếu bạn chỉ muốn xây dựng một ứng dụng Python phía máy khách nhằm mục đích sử dụng dịch vụ API REST hiện có, tất cả những gì bạn cần là một thư viện máy khách API REST

Hãy để chúng tôi xem xét các khung API Python REST khác nhau đang được phát triển tích cực và được áp dụng tốt vào năm 2020. Chúng tôi đã phân loại các khung này thành các thư viện máy khách, microframework và khung đầy đủ để thuận tiện cho bạn

TL;DR. Nếu bạn muốn có được một phân tích so sánh nhanh về tất cả các khung được trình bày ở đây, hãy xem bảng so sánh ở cuối bài đăng này.    

Khung API Python tốt nhất

yêu cầu

Loại. Thư viện khách hàng

Thư viện Requests là một thư viện máy khách HTTP rất phổ biến trong Python. Tài liệu Python chính thức cũng khuyến nghị nó. Như tên gợi ý, thư viện này được sử dụng để tạo các yêu cầu API và nó hỗ trợ tất cả các phương thức HTTP và các tính năng HTTP nâng cao như xác thực, cookie phiên, xử lý SSL, v.v.

Bạn có thể xem kho lưu trữ GitHub yêu cầu hoặc truy cập hướng dẫn bắt đầu nhanh

Gọi API HTTP GET bằng cách sử dụng các yêu cầu đơn giản như thế này

import requests
r = requests.get['//api.github.com/user', auth=['user', 'pass']]

#Get the HTTP Response Code
r.status_code

#Get HTTP Response Body
r.text

 

Nhanh hơn yêu cầu

Loại. Thư viện khách hàng

Thư viện này bắt chước thư viện Yêu cầu. Tuy nhiên, đúng như tên gọi, nó nhanh hơn thư viện Yêu cầu. Bạn có thể kiểm tra tệp README để kiểm tra hiệu suất và yêu cầu của nhà phát triển thư viện này. Nó cũng tuyên bố là nhẹ, xét về các dòng mã

Phần hay nhất của thư viện này là một loạt các chức năng tiện ích ngoài các phương thức HTTP thông thường. Thư viện này cung cấp một số chức năng tiện ích thuận tiện cho các tác vụ như quét URL, tải xuống các tài nguyên như tệp hình ảnh hoặc yêu cầu câu lạc bộ tới nhiều URL và trả về một phản hồi

Bạn có thể xem kỹ kho lưu trữ GitHub và thử mã ví dụ. Đây là cách bạn có thể bắt đầu một loạt các yêu cầu API từ thư viện này để tìm nạp URL, tải xuống hình ảnh và thu thập một số URL theo các cách khác nhau

import nimporter
import faster_than_requests as requests

requests.get["//httpbin.org/get"]                                      # GET
requests.post["//httpbin.org/post", "Some Data Here"]                  # POST
requests.download["//example.com/foo.jpg", "out.jpg"]                  # Download a file
requests.scraper[["//foo.io", "//bar.io"], threads=True]          # Multi-Threaded Web Scraper
requests.scraper5[["//foo.io"], sqlite_file_path="database.db"]        # URL-to-SQLite Web Scraper
requests.scraper6[["//python.org"], ["[www||]+[^s]+[w]"]] # Regex-powered Web Scraper

 

PycURL

Loại. Thư viện khách hàng

PycURL là trình bao bọc Python trên thư viện libcurl để truyền tệp đa giao thức. Nó hỗ trợ HTTP, FTP, SMTP và nhiều giao thức Internet khác. Nếu bạn là người hâm mộ thư viện cURL hoặc libcurl, bạn sẽ có thể liên hệ với giao diện Pythonic này qua libcurl dựa trên C/C++ gốc

Để xem kỹ hơn, hãy khám phá kho lưu trữ GitHub của PycURL. Dưới đây là sơ lược về cách bạn có thể thực hiện lệnh gọi HTTP GET bằng PycURL

import pycurl
from io import BytesIO

buffer = BytesIO[]
c = pycurl.Curl[]
c.setopt[c.URL, '//pycurl.io/']
c.setopt[c.WRITEDATA, buffer]
c.perform[]
c.close[]

body = buffer.getvalue[]
# Body is a byte string.
# We have to know the encoding in order to print it to a text file
# such as standard output.
print[body.decode['iso-8859-1']]

 

Bình giữ nhiệt

Loại. Khung vi mô

Flask là một khung web phổ biến rộng rãi cho Python. Với hơn 50 nghìn sao trên GitHub, đây là khung được sử dụng rộng rãi và thích ứng tốt nhất để xây dựng các ứng dụng web bằng Python

Trong những năm qua, Flask đã bổ sung rất nhiều bản cập nhật tính năng, khiến nó gần như tốt như một full stack framework. Tuy nhiên, cách tiếp cận tối giản để xây dựng các ứng dụng web là điều khiến nó trở thành lựa chọn ưa thích của các nhà phát triển. Đây là cách bạn có thể viết một ứng dụng web “Xin chào thế giới” đơn giản trong Flask

from flask import Flask
app = Flask[__name__]

@app.route['/']
def hello_world[]:
    return 'Hello, World!'

Kiểm tra kho lưu trữ Flask GitHub hoặc bắt đầu với hướng dẫn bắt đầu nhanh

 

Lốc xoáy

Loại. Khung vi mô

Tornado là một khung web Python và thư viện mạng không đồng bộ. Nó cũng kết hợp một máy chủ HTTP và giao diện máy khách cùng với giao diện WebSocket để liên lạc hai chiều với các máy chủ hỗ trợ WebSocket

Khung web Tornado có các tính năng phần mềm trung gian cần thiết để xử lý các yêu cầu/phản hồi HTTP, tạo khuôn mẫu và định tuyến. Nó cũng hỗ trợ các đồng quy trình làm cho nó trở nên lý tưởng để xây dựng các chương trình phụ trợ web dựa trên kết nối liên tục và bỏ phiếu dài, đặc biệt là cho WebSockets

Tornado đã xuất hiện từ lâu, nhưng một số tính năng của nó hơi lỗi thời so với các khung REST hiện đại. Tuy nhiên, nó lại nhận được nhiều sự yêu thích trên repo GitHub với hơn 19 nghìn sao

Để bắt đầu với một ứng dụng web Tornado đơn giản, bạn có thể xác định một phụ trợ API đơn giản như thế này

import tornado.ioloop
import tornado.web

class MainHandler[tornado.web.RequestHandler]:
    def get[self]:
        self.write["Hello, world"]

def make_app[]:
    return tornado.web.Application[[
        [r"/", MainHandler],
    ]]

if __name__ == "__main__":
    app = make_app[]
    app.listen[8888]
    tornado.ioloop.IOLoop.current[].start[]

Kiểm tra kho lưu trữ Tornado GitHub để bắt đầu với khung

 

API nhanh

Loại. Khung vi mô

FastAPI là một trong những khung web Python sắp ra mắt. Nó tuyên bố là rất nhanh, hiệu suất cao và hỗ trợ cấu trúc mã hóa nhỏ gọn giúp phát triển siêu nhanh

FastAPI dựa trên khả năng asyncio của Python, đã được chuẩn hóa thành đặc tả ASGI để xây dựng các ứng dụng web không đồng bộ. Về các tính năng, FastAPI gần như ngang bằng với Flask và hỗ trợ các khả năng sẵn có để tích hợp với cơ sở dữ liệu, chạy các tác vụ nền, cắm vào phần mềm trung gian ứng dụng tùy chỉnh, v.v.

Với hơn 14 nghìn sao, FastAPI đang trở nên phổ biến trong cộng đồng Python và đang được phát triển tích cực với hơn 100 người đóng góp

Đây là cách bạn xác định phụ trợ API REST đơn giản với khung FastAPI

from fastapi import FastAPI

app = FastAPI[]


@app.get["/"]
def read_root[]:
    return {"Hello": "World"}


@app.get["/items/{item_id}"]
def read_item[item_id: int, q: str = None]:
    return {"item_id": item_id, "q": q}

Kiểm tra kho lưu trữ FastAPI GitHub để xem xét kỹ hơn các bản phát hành và sự cố mới nhất

 

Sanic

Loại. Khung vi mô

Sanic là một khung web Python dựa trên asyncio khác. Nó là một khung nhẹ với sự hỗ trợ cho tất cả các chức năng phần mềm trung gian ứng dụng và HTTP thiết yếu. Tuy nhiên, nó không có hỗ trợ sẵn cho thành phần dữ liệu

Ngoài ra, Sanic hỗ trợ khả năng viết các giao thức tùy chỉnh và các thành phần phần mềm trung gian để tùy chỉnh yêu cầu giao thức và xử lý phản hồi. Nó có một máy chủ web phát triển sẵn nhưng tích hợp tốt với Nginx cho các ứng dụng sản xuất

Đây là cách viết một máy chủ phụ trợ API đơn giản trong Sanic

from sanic import Sanic
from sanic.response import json

app = Sanic[]

@app.route['/']
async def test[request]:
    return json[{'hello': 'world'}]

if __name__ == '__main__':
    app.run[host='0.0.0.0', port=8000]

Để biết thêm chi tiết, hãy xem kho lưu trữ Sanic GitHub hoặc xem hướng dẫn Bắt đầu

 

Chim ưng

Loại. Khung vi mô

Falcon đặt mục tiêu trở thành một khung web đáng tin cậy để xây dựng các dịch vụ phụ trợ và dịch vụ vi mô quy mô lớn. Nó khuyến khích kiểu kiến ​​trúc REST và hoạt động với các máy chủ tương thích với WSGI hoặc ASGI

Falcon có giao diện dựa trên lớp, hướng đối tượng để xác định tài nguyên API. Nó hỗ trợ các tính năng phần mềm trung gian ứng dụng và HTTP thiết yếu, bao gồm xử lý giao thức HTTP, định tuyến, xử lý phương tiện, cookie và các tiện ích URI

Đây là cách bạn xác định tài nguyên API REST bằng phương pháp hướng đối tượng của Falcon

class QuoteResource:

    def on_get[self, req, resp]:
        """Handles GET requests"""
        quote = {
            'quote': [
                "I've always been more interested in "
                "the future than in the past."
            ],
            'author': 'Grace Hopper'
        }

        resp.media = quote


api = falcon.API[]
api.add_route['/quote', QuoteResource[]]

Hãy xem kho lưu trữ Falcon GitHub. Để bắt đầu viết mã với Falcon, hãy xem hướng dẫn sử dụng

 

Chai

Loại. Khung vi mô

Chai là một khung vi mô rất nhẹ. Nó có dung lượng nhỏ và được phân phối dưới dạng một tệp duy nhất và chỉ phụ thuộc vào thư viện chuẩn Python

Chai cung cấp tất cả các thành phần phần mềm trung gian cần thiết để xây dựng phụ trợ API REST dựa trên định tuyến và mẫu. Nó hỗ trợ hầu hết các tính năng liên quan đến HTTP thông thường như cookie, tiêu đề, siêu dữ liệu và tải tệp lên. Nó cũng có một máy chủ HTTP tích hợp

Một ứng dụng web Chai nhanh chóng và đơn giản trông như thế này

________số 8

Để biết thêm chi tiết, hãy xem kho lưu trữ Chai GitHub hoặc xem hướng dẫn

 

Ôm

Loại. Khung vi mô

Hug thực sự là một khung API đa giao diện. Nó cung cấp một cách tuyệt vời để xây dựng API REST bằng cách tách logic nghiệp vụ API khỏi giao diện và liên kết các phụ thuộc phiên bản

Do tập trung vào việc xây dựng API, Hug bị giới hạn nghiêm ngặt đối với việc xử lý đầu vào/đầu ra, định tuyến và chú thích loại. Tuy nhiên, nó hỗ trợ cung cấp để thêm tiện ích mở rộng. Một trong những tính năng thú vị của Hug là khả năng hiển thị logic API thông qua CLI, HTTP hoặc chức năng cục bộ, do đó cung cấp nhiều giao diện

Đây là cách bạn xác định API trong Hug

import hug

@hug.get[examples='name=Timothy&age=26']
@hug.local[]
def happy_birthday[name: hug.types.text, age: hug.types.number, hug_timer=3]:
    """Says happy birthday to a user"""
    return {'message': 'Happy {0} Birthday {1}!'.format[age, name],'took': float[hug_timer]}

Để biết thêm thông tin, hãy truy cập kho lưu trữ Hug GitHub hoặc khám phá tài liệu

 

Đêm

Loại. Khung vi mô

Eve là một khung vi mô API được xây dựng trên Flask

Mục tiêu của Eve là làm cho quá trình phát triển API REST trở nên cực kỳ nhanh chóng và đơn giản. Do đó, nó được xây dựng dựa trên các nguyên tắc của Flask, bỏ qua tất cả các thành phần ứng dụng web của Flask.

Eve hỗ trợ các mẫu giao diện API REST được sử dụng nhiều nhất như hoạt động CRUD, điểm cuối API có thể tùy chỉnh, lọc, sắp xếp, phân trang, định dạng JSON/XML/JSONP

Nó cũng hỗ trợ các tính năng nâng cao như xác thực, CORS, bộ nhớ đệm, giới hạn tốc độ, v.v. Eve cũng có hỗ trợ tích hợp với cơ sở dữ liệu MongoDB và SQL

Eve cung cấp tệp cài đặt cấu hình Python để xác định các điểm cuối và tài nguyên API. Theo cách này, API REST có thể được xây dựng bằng cú pháp JSON khai báo

Để biết thêm chi tiết, hãy xem hướng dẫn bắt đầu nhanh của Eve hoặc duyệt qua kho lưu trữ GitHub

 

Django

Loại. Khung ngăn xếp đầy đủ

Django là một khung web ngăn xếp đầy đủ, đầy đủ tính năng trong Python. Đây là một trong những khung web lâu đời nhất và phổ biến nhất, với gần 50 nghìn sao trên GitHub

Khung Django được tải với nhiều tính năng để xây dựng các ứng dụng web có khả năng đầy đủ. Ngoài phần mềm trung gian ứng dụng và HTTP thiết yếu, các khả năng của nó bao gồm chế độ xem dữ liệu và mẫu MVC, xử lý cơ sở dữ liệu, biểu mẫu, mẫu, bảo mật, bộ nhớ đệm, v.v.

Nếu bạn chỉ quan tâm đến việc xây dựng phụ trợ API REST, thì Django là quá mức cần thiết. Tuy nhiên, bạn có thể sử dụng khung Django REST, một dự án do cộng đồng tài trợ bởi Encode. Nó sử dụng Django làm công cụ cơ bản bằng cách cung cấp giao diện đơn giản hơn dành riêng cho phát triển API REST

Bạn có thể kiểm tra kho mã của Django và Django REST framework để biết thêm chi tiết

 

TurboGears

Loại. Khung ngăn xếp đầy đủ

TurboGears là một khung web ngăn xếp đầy đủ. Tuy nhiên, nó được thiết kế để mở rộng quy mô từ ứng dụng tệp đơn lẻ sang ứng dụng ngăn xếp đầy đủ. Bằng cách này, TurboGears mang đến cho các nhà phát triển cảm giác về một khung vi mô nhưng vẫn cung cấp các công cụ mạnh mẽ để mở rộng quy mô nhằm lưu trữ một ứng dụng web chính thức

TurboGears được xây dựng trên mẫu MVC, giống như các full stack framework khác. Nó hỗ trợ, tạo khuôn mẫu, phân trang, xác thực và ủy quyền, lưu vào bộ nhớ đệm, cùng với hỗ trợ cho một số cơ sở dữ liệu và di chuyển lược đồ

Khám phá kho lưu trữ TurboGears GitHub để xem xét kỹ hơn về khung. Để bắt đầu phát triển, hãy xem tài liệu TurgoGears

 

web2py

Loại. Khung ngăn xếp đầy đủ

Web2py là một khung web dựa trên Python tập trung vào các ứng dụng web dựa trên cơ sở dữ liệu

Về cốt lõi, web2py có các mô-đun để xử lý HTTP và URL. Nó cũng có một bộ lập lịch tích hợp để chạy các tác vụ nền. Ngoài ra, web2py có lớp trừu tượng cơ sở dữ liệu ánh xạ các đối tượng Python vào các đối tượng cơ sở dữ liệu, chẳng hạn như bảng, truy vấn và bản ghi. Lớp trừu tượng hóa cơ sở dữ liệu hoạt động cùng với một bộ trình điều khiển hỗ trợ nhiều cơ sở dữ liệu phổ biến như SQLite, MySQL, PostgreSQL, Oracle, DB2, MSSQL, MongoDB, v.v.

Nó cũng có hỗ trợ MVC đầy đủ tính năng, xác thực biểu mẫu, bảo mật, kiểm soát truy cập và nhiều tiện ích khác

Bạn có thể đọc thêm về nó trong cuốn sách trực tuyến web2py. Để xem kỹ hơn, bạn có thể duyệt qua kho lưu trữ web2py GitHub

 

Kim tự tháp

Loại. Khung ngăn xếp đầy đủ

Kim tự tháp là một khung web Python đầy đủ khác tin tưởng vào việc bắt đầu từ quy mô nhỏ và phát triển lớn. Cách tiếp cận này cho phép các nhà phát triển bắt đầu với Kim tự tháp như một khung vi mô. Hơn nữa, Kim tự tháp đủ linh hoạt để mở rộng và thêm nhiều thành phần hơn để đảm nhận tất cả các khía cạnh cần thiết để xây dựng một ứng dụng web quy mô lớn

Khung kim tự tháp bao gồm tất cả các tính năng tiêu chuẩn của khung web như mẫu MVC, định tuyến, tạo khuôn mẫu, bảo mật, phiên, cơ sở dữ liệu và ghi nhật ký. Nó bao gồm một máy chủ web được gọi là pserve, nhưng nó hoạt động tốt với Apache và Nginx để triển khai sản xuất

Đây là cách bạn tạo một phụ trợ web đơn giản với Kim tự tháp

import nimporter
import faster_than_requests as requests

requests.get["//httpbin.org/get"]                                      # GET
requests.post["//httpbin.org/post", "Some Data Here"]                  # POST
requests.download["//example.com/foo.jpg", "out.jpg"]                  # Download a file
requests.scraper[["//foo.io", "//bar.io"], threads=True]          # Multi-Threaded Web Scraper
requests.scraper5[["//foo.io"], sqlite_file_path="database.db"]        # URL-to-SQLite Web Scraper
requests.scraper6[["//python.org"], ["[www||]+[^s]+[w]"]] # Regex-powered Web Scraper
0

Để hiểu rõ hơn về framework, bạn xem kho lưu trữ Pyramid GitHub hoặc xem tài liệu

Python có API REST không?

Một trong những cách phổ biến nhất để xây dựng API là kiểu kiến ​​trúc REST. Python cung cấp một số công cụ tuyệt vời không chỉ để lấy dữ liệu từ API REST mà còn để xây dựng API REST Python của riêng bạn .

API REST của ngôn ngữ nào?

XML. JSON và XML là hai tiêu chuẩn thực tế để gửi và nhận dữ liệu trong API REST. Các ngôn ngữ lập trình web như Python, JavaScript, Ruby on Rails và Java đều có các công cụ để phân tích cú pháp và làm việc với XML và JSON.

Chủ Đề