Làm cách nào để lấy giá trị từ biểu mẫu HTML bằng Python?

Một biểu mẫu HTML được sử dụng để thu thập đầu vào của người dùng. Đầu vào của người dùng thường được gửi đến máy chủ để xử lý



Phần tử

Phần tử HTML được sử dụng để tạo biểu mẫu HTML cho đầu vào của người dùng


.
phần tử biểu mẫu
.

Các

phần tử là nơi chứa các loại phần tử đầu vào khác nhau, chẳng hạn như. trường văn bản, hộp kiểm, nút radio, nút gửi, v.v.

Tất cả các yếu tố hình thức khác nhau được đề cập trong chương này. Phần tử biểu mẫu HTML


Phần tử

Phần tử HTML là phần tử biểu mẫu được sử dụng nhiều nhất

Phần tử có thể được hiển thị theo nhiều cách, tùy thuộc vào thuộc tính type

Dưới đây là một số ví dụ

LoạiMô tảHiển thị trường nhập văn bản một dòngHiển thị nút radio (để chọn một trong nhiều lựa chọn)Hiển thị hộp kiểm (để chọn không hoặc nhiều lựa chọn)Hiển thị nút gửi (để gửi biểu mẫu)Hiển thị nút có thể nhấp

Tất cả các loại đầu vào khác nhau được đề cập trong chương này. Các loại đầu vào HTML



Trường văn bản

xác định trường nhập một dòng để nhập văn bản

Ví dụ

Một biểu mẫu có các trường nhập văn bản


  Tên.

 

  Họ.

 

Tự mình thử »

Đây là cách mã HTML ở trên sẽ được hiển thị trong trình duyệt

Ghi chú. Bản thân biểu mẫu không hiển thị. Cũng lưu ý rằng chiều rộng mặc định của trường nhập liệu là 20 ký tự


Phần tử

Lưu ý việc sử dụng phần tử trong ví dụ trên

Thẻ xác định nhãn cho nhiều phần tử biểu mẫu

Phần tử hữu ích cho người dùng trình đọc màn hình vì trình đọc màn hình sẽ đọc to nhãn khi người dùng tập trung vào phần tử đầu vào

Phần tử cũng giúp người dùng gặp khó khăn khi nhấp vào các vùng rất nhỏ (chẳng hạn như nút radio hoặc hộp kiểm) - bởi vì khi người dùng nhấp vào văn bản trong phần tử , nó sẽ chuyển đổi nút radio/hộp kiểm

Thuộc tính

POST /login HTTP/1.1
Host: reqbin.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
        
login=my_login&password=my_password
3 của thẻ phải bằng thuộc tính 1 của phần tử để liên kết chúng lại với nhau

Thuộc tính

POST /login HTTP/1.1
Host: reqbin.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
        
login=my_login&password=my_password
7 chỉ định cách gửi dữ liệu biểu mẫu (dữ liệu biểu mẫu được gửi đến trang được chỉ định trong thuộc tính
POST /login HTTP/1.1
Host: reqbin.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
        
login=my_login&password=my_password
8)

Dữ liệu biểu mẫu có thể được gửi dưới dạng biến URL (với

POST /login HTTP/1.1
Host: reqbin.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
        
login=my_login&password=my_password
9) hoặc dưới dạng giao dịch bài đăng HTTP (với
POST /upload HTTP/1.1
Host: reqbin.com
Content-Type: multipart/form-data
Content-Length: 526
          
=======MIME boundary string
Content-Disposition: form-data; login="login",
          
my_login
=======MIME boundary string
Content-Disposition: form-data; name="file"; filename="image1.jpg"
Content-Type: image/jpeg
          
[image data]
=======MIME boundary string
Content-Disposition: form-data; name="file"; filename="image2.jpg"
Content-Type: image/jpeg
          
[image data]
=======boundary string--
0)

HTTP POST là một trong chín phương thức tiêu chuẩn của Giao thức truyền siêu văn bản. Phương thức POST được sử dụng để đăng dữ liệu lên máy chủ, tải tệp và hình ảnh lên cũng như gửi biểu mẫu HTML. Phương thức HTTP POST khác với các yêu cầu HTTP GET và HEAD ở chỗ các yêu cầu POST có thể thay đổi trạng thái của máy chủ

Biểu mẫu HTML là gì?

A form is a section of an HTML document that contains controls such as text and password input fields, radio buttons, checkboxes, and a Submit button, enclosed in an HTML

tag. HTML forms collect user input and send it to a server for processing. Examples of HTML forms are login and image upload forms.

Ví dụ biểu mẫu HTML


  
  
  


Gửi biểu mẫu HTML qua HTTP bằng Python

Trong HTTP, có hai cách để gửi biểu mẫu HTML tới máy chủ bằng cách sử dụng các loại nội dung ứng dụng/x-www-form-urlencoding và multipart/form-data. Biểu mẫu HTML có thể được gửi từ trình duyệt và từ mã Python

  1. Gửi biểu mẫu HTML bằng loại phương tiện application/x-www-form-urlencoded.
    Loại phương tiện ứng dụng/x-www-form-urlencoding chủ yếu được sử dụng để gửi biểu mẫu HTML ngắn dưới dạng cặp khóa-giá trị, chẳng hạn như khi ủy quyền người dùng sử dụng biểu mẫu đăng nhập/mật khẩu.

    Ví dụ về yêu cầu biểu mẫu đăng nhập HTML

    POST /login HTTP/1.1
    Host: reqbin.com
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 36
            
    login=my_login&password=my_password


  2. Gửi biểu mẫu HTML bằng loại phương tiện nhiều phần/biểu mẫu dữ liệu.
    Loại phương tiện nhiều phần/biểu mẫu dữ liệu được trình duyệt sử dụng khi tải dữ liệu nhị phân lên máy chủ (ví dụ: khi tải nhiều hình ảnh lên). Trong trường hợp này, dữ liệu biểu mẫu được định dạng dưới dạng một chuỗi các phần được phân tách bằng ranh giới MIME.

    Ví dụ về yêu cầu biểu mẫu tải lên HTML

    POST /upload HTTP/1.1
    Host: reqbin.com
    Content-Type: multipart/form-data
    Content-Length: 526
              
    =======MIME boundary string
    Content-Disposition: form-data; login="login",
              
    my_login
    =======MIME boundary string
    Content-Disposition: form-data; name="file"; filename="image1.jpg"
    Content-Type: image/jpeg
              
    [image data]
    =======MIME boundary string
    Content-Disposition: form-data; name="file"; filename="image2.jpg"
    Content-Type: image/jpeg
              
    [image data]
    =======boundary string--

Gửi biểu mẫu HTML ở định dạng JSON

HTML không có phương thức riêng để chuyển đổi biểu mẫu thành đối tượng JSON. Nếu bạn muốn chuyển đổi dữ liệu biểu mẫu thành JSON, bạn cần sử dụng JavaScript để

  1. Thu thập dữ liệu biểu mẫu từ đối tượng DOM vào đối tượng JavaScript. Nếu bạn đang sử dụng jQuery, bạn có thể chuyển đổi biểu mẫu HTML của mình thành một đối tượng JavaScript bằng một dòng bằng cách sử dụng $("#form"). serializeArray() phương thức jQuery
  2. Chuyển đổi đối tượng JavaScript thành chuỗi JSON bằng JSON. phương thức stringify()
  3. Gửi dữ liệu biểu mẫu đến máy chủ bằng cách sử dụng các phương thức XMLHttpRequest hoặc tìm nạp

Gửi biểu mẫu HTML bằng phương thức HTTP GET

Trong một số trường hợp, bạn có thể gửi dữ liệu biểu mẫu bằng phương thức HTTP GET. Dữ liệu biểu mẫu được chuyển đến máy chủ dưới dạng một loạt các tham số URL tên/giá trị và bạn bị giới hạn ở độ dài tối đa của URL. Đối với trình duyệt, giới hạn là khoảng 2000 ký tự (phụ thuộc vào trình duyệt) đối với mã Python, không có giới hạn như vậy, nhưng máy chủ của bạn có thể có giới hạn của nó. Ví dụ: độ dài tối đa của URL Apache là 8177 ký tự. Gửi biểu mẫu HTML bằng phương thức HTTP GET kém an toàn hơn vì bạn chuyển dữ liệu tham số URL

Ví dụ về Gửi Biểu mẫu HTML bằng Phương thức HTTP GET

GET /login?login=my_login&password=my_passowrd HTTP/1.1
Host: reqbin.com


Xem thêm

  • 9 phương thức HTTP hàng đầu
  • Làm cách nào để đăng JSON lên máy chủ?
  • Làm cách nào để gửi yêu cầu HTTP POST?

Tạo đoạn mã cho Python và các ngôn ngữ lập trình khác

Chuyển đổi yêu cầu Biểu mẫu POST HTML của bạn sang PHP, JavaScript/AJAX, Curl/Bash, Python, Java, C#/. NET bằng cách sử dụng trình tạo mã Python

Các ví dụ và bài viết về API liên quan đến biểu mẫu Python POST HTML

Làm cách nào để đăng JSON lên điểm cuối API REST?

Làm cách nào để lấy đầu vào từ biểu mẫu HTML bằng Python?

yêu cầu. mẫu đơn. get(“fname”) sẽ lấy đầu vào từ giá trị Đầu vào có thuộc tính name là fname và lưu trữ trong biến first_name
yêu cầu. mẫu đơn. get(“lname”) sẽ nhận đầu vào từ giá trị Đầu vào có thuộc tính tên là lname và lưu trữ trong biến last_name

Làm cách nào để lấy giá trị từ HTML Python?

Có hai phương pháp để giải quyết vấn đề của bạn. .
Lấy giá trị đầu vào bằng phương thức nhập của python
Lấy đầu vào từ biểu mẫu HTML. Trong trường hợp này, trước tiên, bạn cần chạy một máy chủ cục bộ. Để làm điều đó, bạn có thể sử dụng các khung python khác nhau. Ví dụ: bình, chai, Django (Tôi đang sử dụng bình ở đây để hiển thị ví dụ. )

Làm cách nào để lấy các giá trị từ biểu mẫu HTML trong Python Flask?

Dữ liệu liên kết với biểu mẫu HTML được mang trong yêu cầu HTTP. Để truy cập dữ liệu yêu cầu biểu mẫu trong Flask, chúng tôi có thể nhập yêu cầu và sử dụng yêu cầu. đối số . Mã ở trên sử dụng yêu cầu để tìm nạp dữ liệu có trong