Nếu
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
0 có nghĩa là tệp, hãy sử dụng:files = {'upload_file': open['file.txt','rb']}
values = {'DB': 'photcat', 'OUT': 'csv', 'SHORT': 'short'}
r = requests.post[url, files=files, data=values]
và
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
1 sẽ gửi thân bài đăng biểu mẫu nhiều phần với trường files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
0 được đặt đến nội dung của tệp files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
3.Tên tệp sẽ được đưa vào tiêu đề MIME cho trường cụ thể:
>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
Lưu ý tham số
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
4.Bạn có thể sử dụng một tuple cho giá trị ánh xạ
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
5, với từ 2 đến 4 phần tử, nếu bạn cần kiểm soát nhiều hơn. Phần tử đầu tiên là tên tệp, theo sau là nội dung và giá trị tiêu đề kiểu nội dung tùy chọn và ánh xạ tùy chọn của các tiêu đề bổ sung:files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
Điều này đặt ra một tên tệp và loại nội dung thay thế, để lại các tiêu đề tùy chọn.
Nếu bạn có nghĩa là toàn bộ cơ thể bài đăng được lấy từ một tệp [không có trường nào được chỉ định], thì không sử dụng tham số
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
5, chỉ cần đăng tệp trực tiếp dưới dạng files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
7. Sau đó, bạn cũng có thể muốn đặt tiêu đề files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
8, vì sẽ không được đặt khác. Xem Yêu cầu Python - Đăng dữ liệu từ một tệp.Hướng Dẫn Sử Dụng Thư Viện "Requests" trong Python
Thư viện Requests trong Python giúp lập trình viên có thể thực hiện các tác vụ như gửi request tới server cũng như xử lý response một cách đơn giản. Trong bài viết này chúng ta sẽ tìm hiểu cách sử dụng thư viện này.Requests trong Python giúp lập trình viên có thể thực hiện các tác vụ như gửi request tới server cũng như xử lý response một cách đơn giản. Trong bài viết này chúng ta sẽ tìm hiểu cách sử dụng thư viện này.
Cài Đặt Thư Viện Requests
Cách đơn giản nhất để cài đặt thư viện Request đó là sử dụng chương trình
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
9.Request đó là sử dụng chương trình files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
9.Việc cài đặt
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
9 có thể được thực hiện một cách đơn giản thông qua $ pip install pipenv
1:$ pip install pipenv
Ngoài ra, nếu bạn sử dụng Mac OSX thì việc cài đặt
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
9 khá đơn giản thông qua HomeBrew:$ brew install pipenv
Sau khi đã có
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
9 chúng ta sẽ thực hiện việc cài đặt thư viện Requests. Mở cửa sổ dòng lệnh và chạy câu lệnh sau:Requests. Mở cửa sổ dòng lệnh và chạy câu lệnh sau:$ pipenv install requests
Sau khi hoàn tất việc cài đặt thì bây giờ chúng ta đã sẵn sàng để bắt đầu sử dụng thư viện này. Ở phần tiếp theo sau tôi sẽ chạy code Python trong interactive, tuy nhiên nếu muốn bạn có thể tạo file chương trình python riêng để chạy code. Để truy cập vào Python interactive mode bạn chạy câu lệnh
$ pip install pipenv
4 trên cửa sổ dòng lệnh.Gửi HTTP GET Request
Trước tiên chúng ta cần import thư viện Requests vào sử dụng trong chương trình:
>>> import requests
Để gửi một HTTP GET request tới địa chỉ URL là
$ pip install pipenv
5:>>> res = requests.get['//www.codehubnv./bai-viet']
Sau khi chạy câu lệnh trên biến
$ pip install pipenv
6 lúc này sẽ chứa thông tin response trả về từ server. Để xem dữ liệu của response trả về dưới định dạng văn bản chúng ta sử dụng câu lệnh:>>> res.text
Chúng ta có thể thêm query parameter trong GET request trực tiếp trong URL:
>>> res = requests.get['//www.codehub.vn/bai-viet?page=10']
Hoặc bạn cũng có thể sử dụng cách khác như sau:
>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
0Kiểm tra URL của request:
>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
1Gửi HTTP POST Request
Ở ví dụ dưới đây chúng ta sẽ gửi HTTP POST request tới địa chỉ URL là
$ pip install pipenv
7 với hai trường dữ liệu là $ pip install pipenv
8 và $ pip install pipenv
9:>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
2Request được thực hiện bởi Python ở đoạn code trên sẽ tương tự trường hợp khi bạn truy cập trang login điền các dữ liệu cho 2 trường
$ pip install pipenv
8 và $ brew install pipenv
1 vào HTML form và nhấp Enter để trình duyệt gửi request tới server.Để gửi POST request với giá trị của trường
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
8 trong HTTP header là $ brew install pipenv
3 thì chúng ta cần sử dụng parameter là $ brew install pipenv
4 thay vì files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
7:>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
3Nếu cả 2 parameter
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
7 và $ brew install pipenv
4 đều được sử dụng khi gửi POST request thì parameter files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
7 sẽ được chọn:>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
4Để upload một file lên server sử dụng POST request chúng ta sẽ cần chuyền vào giá trị cho tham số
files = {'upload_file': ['foobar.txt', open['file.txt','rb'], 'text/x-spam']}
5. Giá trị này là một dictionary với tên trường dùng để xác định file được tải lên và giá trị là file object tương ứng:>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
5Gửi HTTP PUT, DELETE, HEAD Và OPTION Request
Các request dạng này tương tự như GET request mà chúng ta đã tham khảo ở mục trước:
>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
6Response Content
Để lấy ra nội dung của response trả về dạng văn bản:
>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
7Trường hợp văn bản trả về trong response có định dạng JSON thì lúc này chúng ta có thể decode dữ liệu này như sau:
>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
8Response Status Codes
Để kiểm tra HTTP status code của response trả về cho request:
>>> import requests
>>> open['file.txt', 'wb'] # create an empty demo file
>>> files = {'upload_file': open['file.txt', 'rb']}
>>> print[requests.Request['POST', '//example.com', files=files].prepare[].body.decode['ascii']]
--c226ce13d09842658ffbd31e0563c6bd
Content-Disposition: form-data; name="upload_file"; filename="file.txt"
--c226ce13d09842658ffbd31e0563c6bd--
9Kết Luận
Trong bài học này chúng ta đã tìm hiểu cách sử dụng thư viện Requests trong Python để gửi request tới server cũng như xử lý response trả về từ server. Requests không phải là thư viện duy nhất có thể thực hiện các công việc này tuy nhiên nó là một trong 3 thư viện phổ biến nhất. Ở các bài học tiếp theo chúng ta sẽ tìm hiểu về các bộ thư viện khác như
$ pipenv install requests
0 và $ pipenv install requests
1 trong Python cũng được sử dụng để gửi HTTP request tới server.Requests trong Python để gửi request tới server cũng như xử lý response trả về từ server. Requests không phải là thư viện duy nhất có thể thực hiện các công việc này tuy nhiên nó là một trong 3 thư viện phổ biến nhất. Ở các bài học tiếp theo chúng ta sẽ tìm hiểu về các bộ thư viện khác như $ pipenv install requests
0 và $ pipenv install requests
1 trong Python cũng được sử dụng để gửi HTTP request tới server.