Trong nhiều ứng dụng web, việc kết nối với các dịch vụ của bên thứ ba khác nhau bằng cách sử dụng API là điều bình thường. Khi bạn sử dụng các API này, bạn có thể có quyền truy cập vào dữ liệu như thông tin thời tiết…

< font style = "vertical-align: inherit;"> Bạn đang xem: yêu cầu python nhận được thông số

Mặc dù chúng tôi tin rằng nội dung này có lợi cho cộng đồng của chúng tôi , chúng tôi vẫn chưa xem xét kỹ lưỡng. Nếu bạn có bất kỳ đề xuất cải tiến nào, vui lòng cho chúng tôi biết bằng cách nhấp vào nút “báo cáo sự cố“ ở cuối hướng dẫn.

Giới thiệu

Trong nhiều ứng dụng web, việc kết nối với các dịch vụ của bên thứ ba khác nhau bằng cách sử dụng API là điều bình thường. Khi bạn sử dụng các API này, bạn có thể có quyền truy cập vào dữ liệu như thông tin thời tiết, tỷ số thể thao, danh sách phim, tweet, kết quả của công cụ tìm kiếm và hình ảnh. Bạn cũng có thể sử dụng các API để thêm chức năng cho ứng dụng của mình. Ví dụ về những điều này là thanh toán, lên lịch, email, bản dịch, bản đồ và chuyển tệp. Nếu bạn tự tạo bất kỳ cái nào trong số đó thì sẽ mất rất nhiều thời gian, nhưng với API, có thể chỉ mất vài phút để kết nối với một cái và truy cập các tính năng cũng như dữ liệu của nó.

Trong bài viết này, chúng ta sẽ tìm hiểu về thư viện Yêu cầu trong Python, cho phép bạn gửi các yêu cầu HTTP bằng Python.

Và vì sử dụng API là gửi yêu cầu HTTP và nhận phản hồi, Yêu cầu cho phép bạn sử dụng API bằng Python. Chúng tôi sẽ trình bày việc sử dụng API dịch ngôn ngữ tại đây để bạn có thể xem ví dụ về cách hoạt động của nó.

Tổng quan nhanh về Yêu cầu HTTP

Các yêu cầu HTTP là cách web hoạt động. Mỗi khi bạn điều hướng đến một trang web, trình duyệt của bạn sẽ đưa ra nhiều yêu cầu đến máy chủ của trang web. Sau đó, máy chủ sẽ phản hồi với tất cả dữ liệu cần thiết để hiển thị trang và trình duyệt của bạn sau đó thực sự hiển thị trang để bạn có thể xem.

Quy trình chung là sau: một ứng dụng khách (như trình duyệt hoặc tập lệnh Python sử dụng Yêu cầu) sẽ gửi một số dữ liệu đến một URL và sau đó máy chủ đặt tại URL sẽ đọc dữ liệu, quyết định phải làm gì với nó và trả lại phản hồi cho khách hàng. Cuối cùng, khách hàng có thể quyết định phải làm gì với dữ liệu trong phản hồi.

Một phần dữ liệu mà khách hàng gửi trong một yêu cầu là phương thức yêu cầu. Một số phương thức yêu cầu phổ biến là GET, POST và PUT. Các yêu cầu GET thường chỉ để đọc dữ liệu mà không thực hiện thay đổi đối với một thứ gì đó, trong khi các yêu cầu POST và PUT nói chung là để sửa đổi dữ liệu trên máy chủ. Vì vậy, ví dụ: Stripe API cho phép bạn sử dụng các yêu cầu ĐĂNG để tạo một khoản phí mới để người dùng có thể mua thứ gì đó từ ứng dụng của bạn.

Lưu ý: Bài viết này sẽ đề cập đến các yêu cầu GET vì chúng tôi sẽ không sửa đổi bất kỳ dữ liệu nào trên máy chủ.

Khi gửi một yêu cầu từ tập lệnh Python hoặc bên trong một ứng dụng web, bạn, nhà phát triển, sẽ quyết định những gì được gửi trong mỗi yêu cầu và phải làm gì với phản hồi. Vì vậy, hãy khám phá điều đó trước tiên bằng cách gửi yêu cầu tới Scotch.io , sau đó bằng cách sử dụng API dịch ngôn ngữ.

Yêu cầu cài đặt Python

Trước khi có thể làm bất cứ điều gì, chúng tôi cần cài đặt thư viện. Vì vậy, hãy tiếp tục và cài đặt các yêu cầu bằng cách sử dụng pip . Trước tiên, bạn nên tạo một môi trường ảo nếu bạn chưa có.

  1. yêu cầu pip

    cài đặt

Yêu cầu đầu tiên của chúng tôi

Để bắt đầu, hãy sử dụng Yêu cầu để yêu cầu trang web Scotch.io . Tạo một tệp có tên script.py và thêm mã sau vào tệp đó. Trong bài viết này, chúng tôi sẽ không có nhiều mã để làm việc, vì vậy khi có điều gì đó thay đổi, bạn chỉ cần cập nhật mã hiện có thay vì thêm các dòng mới.

Xem Thêm  Cách lấy ngày và giờ hiện tại trong JavaScript - giành thời gian trong javascript

script.py

  

nhập

yêu cầu res

=

yêu cầu

.

lấy

(

'https://scotch.io'

)

print

(

res

)

Vì vậy, tất cả những gì mã này đang làm là gửi yêu cầu GET tới Scotch.io . Đây là cùng một loại yêu cầu mà trình duyệt của bạn đã gửi để xem trang này, nhưng điểm khác biệt duy nhất là Yêu cầu không thể thực sự hiển thị HTML, vì vậy thay vào đó, bạn sẽ chỉ nhận được HTML thô và thông tin phản hồi khác.

Chúng tôi đang sử dụng hàm .get () ở đây, nhưng Yêu cầu cho phép bạn sử dụng các hàm khác như .post () .put () để gửi những yêu cầu đó.

Bạn có thể chạy nó bằng cách thực thi tệp script.py .

  
  1. python script.py

Và đây là những gì bạn nhận lại được:
tập lệnh chạy với đầu ra là

Mã trạng thái

Điều đầu tiên chúng tôi có thể làm là kiểm tra mã trạng thái. Mã HTTP nằm trong khoảng từ 1XX đến 5XX. Các mã trạng thái phổ biến mà bạn có thể đã thấy là 200, 404 và 500.

Dưới đây là tổng quan nhanh về ý nghĩa của từng mã trạng thái:

  • 1XX – Thông tin
  • 2XX – Thành công
  • 3XX – Chuyển hướng
  • 4XX – Lỗi Máy khách (bạn đã mắc lỗi)
  • 5XX – Lỗi Máy chủ (họ đã mắc lỗi)

Nói chung, những gì bạn đang tìm kiếm khi thực hiện các yêu cầu của riêng mình là mã trạng thái trong những năm 200.

Yêu cầu nhận ra rằng mã trạng thái 4XX và 5XX là lỗi, vì vậy nếu các mã trạng thái đó được trả về, đối tượng phản hồi từ yêu cầu sẽ đánh giá thành False .

Bạn có thể kiểm tra xem một yêu cầu có được phản hồi thành công hay không bằng cách kiểm tra xem phản hồi có xác thực hay không. Ví dụ:

script.py

  

if

res

:

print

(

'Phản hồi OK'

)

khác

:

print

(

'Phản hồi Không thành công'

)

Đầu ra Phản hồi 200 kèm theo Phản hồi OK

Thông báo “Phản hồi không thành công” sẽ chỉ xuất hiện nếu mã trạng thái 400 hoặc 500 trả về. Hãy thử thay đổi URL thành một số nội dung vô nghĩa để xem phản hồi không thành công với 404.

Bạn có thể xem mã trạng thái trực tiếp bằng cách thêm:

script.py

  

print

(

res

.

status_code

)

Điều này sẽ hiển thị trực tiếp cho bạn mã trạng thái để bạn có thể tự kiểm tra số.

Lỗi đầu ra với 404

Tiêu đề

Một điều khác bạn có thể nhận được từ phản hồi là các tiêu đề. Bạn có thể xem chúng bằng cách sử dụng từ điển tiêu đề trên đối tượng phản hồi.

script.py

  

print

(

res

.

tiêu đề

)

đầu ra với tiêu đề được in chuẩn

Tiêu đề được gửi cùng với yêu cầu và được trả lại trong phản hồi. Tiêu đề được sử dụng để cả máy khách và máy chủ biết cách diễn giải dữ liệu được gửi và nhận trong phản hồi / phản hồi.

Chúng tôi thấy các tiêu đề khác nhau được trả về. Nhiều khi bạn không cần sử dụng trực tiếp thông tin tiêu đề, nhưng thông tin tiêu đề sẽ ở đó nếu bạn cần.

Loại nội dung thường là loại bạn có thể cần vì nó tiết lộ định dạng của dữ liệu, ví dụ: HTML, JSON, PDF, văn bản, v.v. Nhưng loại nội dung thường được xử lý bởi Yêu cầu để bạn có thể truy cập dữ liệu được trả lại.

Văn bản phản hồi

Và cuối cùng, nếu chúng ta xem qua res.text (điều này hoạt động đối với dữ liệu văn bản, như một trang HTML mà chúng ta đang xem), chúng ta có thể thấy tất cả HTML cần thiết để xây dựng trang chủ của Scotch. Nó sẽ không được hiển thị, nhưng chúng tôi thấy rằng có vẻ như nó thuộc về Scotch. Nếu bạn đã lưu nó vào một tệp và mở nó ra, bạn sẽ thấy một cái gì đó giống với trang Scotch. Trong một tình huống thực tế, nhiều yêu cầu được thực hiện cho một trang web để tải những thứ như hình ảnh, tập lệnh và bảng định kiểu, vì vậy nếu bạn chỉ lưu HTML vào một tệp, nó sẽ không giống như Scotch. io trang trông giống như trong trình duyệt của bạn vì chỉ có một yêu cầu duy nhất được thực hiện để lấy dữ liệu HTML.

script.py

  

print

(

res

.

text

)

Dữ liệu HTML được in trên dòng lệnh

Sử dụng API Dịch

Vì vậy, bây giờ hãy chuyển sang một cái gì đó thú vị hơn. Chúng tôi sẽ sử dụng API dịch Yandex để thực hiện yêu cầu dịch một số văn bản sang ngôn ngữ khác.

Để sử dụng API, trước tiên bạn cần đăng ký. Sau khi bạn đăng ký, hãy truy cập API Dịch và tạo khóa API. Sau khi bạn có khóa API, hãy thêm khóa đó vào tệp của bạn dưới dạng một hằng số. Đây là liên kết nơi bạn có thể thực hiện tất cả những điều đó: https://tech.yandex.com/translate/

Xem Thêm  Python Ghi vào tệp - Giải thích các chức năng xử lý tệp mở, đọc, nối và các chức năng khác - mở tệp và ghi bằng python

script.py

  API_KEY 

=

'khóa api yandex của bạn'

Lý do tại sao chúng tôi cần khóa API là để Yandex có thể xác thực chúng tôi mỗi khi chúng tôi muốn sử dụng API của họ. Khóa API là một dạng xác thực nhẹ vì nó được thêm vào cuối URL yêu cầu khi được gửi.

Để biết chúng tôi cần gửi URL nào để sử dụng API, chúng tôi có thể xem tài liệu về Yandex .

Nếu chúng tôi nhìn vào đó, chúng tôi sẽ thấy tất cả thông tin cần thiết để sử dụng API Dịch của họ để dịch văn bản.

Cú pháp yêu cầu để sử dụng API

Khi chúng tôi thấy một URL có ký hiệu và (& amp;), dấu chấm hỏi (?) và dấu bằng (=), bạn có thể chắc chắn rằng URL đó dành cho các yêu cầu GET. Những ký hiệu đó chỉ định các thông số đi cùng với URL.

Thông thường, những thứ trong dấu ngoặc vuông ([]) sẽ là tùy chọn. Trong trường hợp này, định dạng, tùy chọn và lệnh gọi lại là tùy chọn, trong khi khóa, văn bản và ngôn ngữ là bắt buộc cho yêu cầu.

Vì vậy, hãy thêm một số mã để gửi đến URL đó. Bạn có thể thay thế yêu cầu đầu tiên mà chúng tôi đã tạo bằng yêu cầu này:

script.py

  url 

=

'https://translate.yandex.net/api/ v1.5 / tr.json / dịch '

res

=

yêu cầu

.

lấy

(

url

)

Có hai cách để chúng tôi có thể thêm các tham số. Chúng tôi có thể nối trực tiếp nó vào cuối URL hoặc chúng tôi có thể yêu cầu Yêu cầu thực hiện điều đó cho chúng tôi. Để làm điều này, chúng ta có thể tạo một từ điển cho các tham số của chúng ta. Ba mục chúng ta cần là chìa khóa, văn bản và ngôn ngữ. Hãy tạo từ điển bằng cách sử dụng khóa API, 'Hello' cho văn bản và 'en-es' là ngôn ngữ, có nghĩa là chúng tôi muốn dịch từ tiếng Anh sang tiếng Tây Ban Nha .

Nếu bạn cần biết bất kỳ mã ngôn ngữ nào khác, bạn có thể xem tại đây . Bạn đang tìm cột 639-1.

Chúng tôi tạo từ điển tham số bằng cách sử dụng hàm dict () và chuyển các khóa và giá trị chúng tôi muốn vào từ điển của mình.

script.py

  params 

=

dict

(

khóa

=

API_KEY

,

text

=

'Xin chào'

,

lang

=

'vi'

)

Bây giờ chúng ta lấy từ điển tham số và chuyển nó vào hàm .get () .

script.py

  res 

=

yêu cầu

.

lấy

(

url

,

params

=

params

) < / p>

Khi chúng tôi chuyển các tham số theo cách này, Yêu cầu sẽ tiếp tục và thêm các tham số vào URL cho chúng tôi.

Bây giờ, hãy thêm một câu lệnh in cho văn bản phản hồi và xem những gì được trả lại trong câu trả lời.

script.py

  

print

(

res

.

text

)

xuất từ ​​điển với các giá trị được nhập

Chúng tôi thấy ba điều. Chúng tôi thấy mã trạng thái, chính xác là mã trạng thái của chính phản hồi, chúng tôi thấy ngôn ngữ mà chúng tôi đã chỉ định và chúng tôi thấy văn bản đã dịch bên trong danh sách. Vì vậy, bạn sẽ thấy 'Hola' để biết văn bản đã dịch.

Hãy thử lại với en-fr làm mã ngôn ngữ và bạn sẽ thấy 'Bonjour' trong câu trả lời ngay bây giờ.

script.py

  params 

=

dict

(

key

=

API_KEY

,

text

=

'Xin chào'

,

lang

=

'en-fr'

)

Văn bản được dịch bằng tiếng Pháp

Hãy xem qua các tiêu đề cho câu trả lời cụ thể này.

script.py

  

print

(

res

.

tiêu đề

)

Tiêu đề được in ở đầu ra

Rõ ràng là các tiêu đề phải khác nhau vì chúng ta đang giao tiếp với một máy chủ khác, nhưng trong trường hợp này, loại nội dung là application / json thay vì text / html. Điều này có nghĩa là dữ liệu có thể được hiểu là JSON.

Khi ứng dụng / json là loại nội dung của phản hồi, chúng tôi có thể yêu cầu Yêu cầu chuyển đổi phản hồi thành từ điển và danh sách để chúng tôi có thể truy cập dữ liệu dễ dàng hơn.

Để dữ liệu được phân tích cú pháp dưới dạng JSON, chúng tôi sử dụng phương thức .json () trên đối tượng phản hồi.

Nếu in ra, bạn sẽ thấy dữ liệu trông giống nhau nhưng định dạng hơi khác một chút.

script.py

  json 

=

res

.

json

(

)

print

(

json

)


Lý do tại sao nó khác là vì nó không còn là văn bản thuần túy mà bạn nhận được từ res.text. Lần này là phiên bản in của từ điển.

Giả sử chúng tôi muốn truy cập văn bản. Vì đây là từ điển nên chúng ta có thể sử dụng phím văn bản.

script.py

  

print

(

json

[

'văn bản'

]

)


Và bây giờ chúng ta chỉ thấy dữ liệu cho một khóa đó. Trong trường hợp này, chúng tôi đang xem danh sách một mục, vì vậy nếu chúng tôi muốn lấy văn bản đó trực tiếp trong danh sách, chúng tôi có thể truy cập nó bằng chỉ mục.

script.py

  

print

(

json

[

'text'

]

[

0

]

)

"Bonjour" không có dấu ngoặc vuông

Và bây giờ điều duy nhất chúng tôi thấy là từ đã dịch.

Vì vậy, tất nhiên nếu chúng tôi thay đổi mọi thứ trong thông số của mình, chúng tôi sẽ nhận được các kết quả khác nhau. Hãy thay đổi văn bản cần dịch từ Hello thành Goodbye , thay đổi ngôn ngữ đích trở lại tiếng Tây Ban Nha và gửi lại yêu cầu.

script.py

  params 

=

dict

(

khóa

=

API_KEY

,

text

=

'Tạm biệt'

,

lang

=

'vi'

)

"Adios" được in để xuất
Hãy thử dịch văn bản dài hơn sang các ngôn ngữ khác nhau và xem API cung cấp cho bạn những phản hồi nào.

Dịch các Trường hợp Lỗi API

Cuối cùng, chúng tôi sẽ xem xét một trường hợp lỗi. Không phải lúc nào mọi thứ cũng hoạt động, vì vậy chúng ta cần biết khi nào điều đó xảy ra.

Hãy thử thay đổi khóa API của bạn bằng cách xóa một ký tự. Khi bạn làm điều này, khóa API của bạn sẽ không còn hợp lệ. Sau đó, hãy thử gửi một yêu cầu.

Nếu bạn xem mã trạng thái, đây là những gì bạn nhận được:

script.py

  

print

(

res

.

status_code

)

lỗi 403
Vì vậy, khi sử dụng API, bạn sẽ muốn kiểm tra xem mọi thứ có thành công hay không để có thể xử lý các trường hợp lỗi theo nhu cầu của ứng dụng.

Kết luận

Đây là những gì chúng tôi học được:

  • Cách các yêu cầu HTTP hoạt động
  • Các mã trạng thái khác nhau có thể có trong một phản hồi
  • Cách gửi yêu cầu và nhận phản hồi bằng thư viện Yêu cầu trong Python
  • Cách sử dụng API dịch ngôn ngữ để dịch văn bản
  • Cách chuyển đổi phản hồi của ứng dụng / nội dung JSON sang từ điển

Nếu bạn muốn làm được nhiều việc hơn, hãy xem danh sách này để xem các API khác nhau có sẵn và cố gắng sử dụng chúng với Yêu cầu Python.


Xem thêm những thông tin liên quan đến chủ đề Yêu cầu python nhận được thông số

Lập trình Python cơ bản || Bài 1: Lệnh in thông tin trong Python || Học Và Giải Trí

alt

  • Tác giả: Học Và Giải Trí
  • Ngày đăng: 2021-07-14
  • Đánh giá: 4 ⭐ ( 9636 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: hocvagiaitri
    – Cùng học lập trình Python cơ bản cho người mới bắt đầu
    – Fanpage: https://www.facebook.com/hoclaptrinh.scratch.python.c.coban/?ref=pages_you_manage
    – Đề thi tin học trẻ: https://tinhoctrekhongchuyen.blogspot.com/
    – Vui lòng đăng kí kênh giúp tôi
    – Like và chia sẽ cho mọ người cùng học
    – Cmt để hỏi đáp

Tổng hợp bài tập Python cơ bản 2020 – Phần 2 (Lời giải) – Blog

  • Tác giả: vn.got-it.ai
  • Đánh giá: 3 ⭐ ( 8987 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bạn muốn nâng cao trình độ Python của mình? Dưới đây là tổng hợp bài tập Python cơ bản cùng lời giải cập nhật nhất dành cho mọi lập trình viên!

[Computer Vision] Object Detection (nhận diện vật thể) chỉ với 10 dòng code sử dụng ImageAI

  • Tác giả: viblo.asia
  • Đánh giá: 4 ⭐ ( 4438 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Object Detection Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo (Artificial Intelligence) là thị giác máy (Computer Vision). Computer Vision là một lĩnh vực bao gồm các phương pháp thu nhận,…

Python: Hướng dẫn cơ bản để nhận dạng giọng nói với Python

  • Tác giả: v1study.com
  • Đánh giá: 4 ⭐ ( 3357 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Yêu cầu Python

  • Tác giả: vi.tutorialcup.com
  • Đánh giá: 3 ⭐ ( 5801 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Yêu cầu trong Python – Thư viện có sẵn được sử dụng để thực hiện các yêu cầu đằng sau API đơn giản để tập trung vào cách tương tác với các dịch vụ và thu thập dữ liệu.

Kiểm tra n có phải số hoàn hoàn thiện không. Với n là số nguyên dương.

  • Tác giả: howkteam.vn
  • Đánh giá: 5 ⭐ ( 3330 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Viết chương trình kiểm tra n có phải số hoàn hoàn thiện không. Với n là số nguyên dương nhập từ bàn phím.

Sử dụng Mô-đun Requests trong Python

  • Tác giả: code.tutsplus.com
  • Đánh giá: 4 ⭐ ( 8698 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Requests là một mô-đun Python mà bạn có thể sử dụng để gửi tất cả các loại yêu cầu HTTP. Đây là một thư viện dễ sử dụng với nhiều tính năng khác nhau, từ việc truyền các tham số trong URL cho đến…

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php