Hướng dẫn html form action python - hành động hình thức html python

Các biểu mẫu và yêu cầu HTTP

Xử lý biểu mẫu là nền tảng cho bất kỳ ứng dụng web nào. Các biểu mẫu cho phép người dùng tương tác với một ứng dụng bằng cách điền vào các trường dữ liệu và tải lên các tệp. Ứng dụng Web cần có khả năng nhận đầu vào từ biểu mẫu và hành động trên nó. Để làm điều này, chúng ta cần hiểu cách dữ liệu biểu mẫu được gửi cùng với yêu cầu HTTP và cách máy chủ mã hóa nó và gửi nó đến tập lệnh ứng dụng trong môi trường WSGI.

Nội dung chính ShowShow

  • Các biểu mẫu và yêu cầu HTTP
  • Xử lý dữ liệu biểu mẫu trong chai
  • Xử lý dữ liệu số
  • Hình thức xác nhận
  • Bài tập
  • Một ví dụ khác: Mẫu sử dụng GET
  • Làm cách nào để xử lý dữ liệu hình thức HTML trong Python?
  • Làm thế nào để bạn xử lý một biểu mẫu trong HTML?
  • Làm thế nào để bạn tự động hóa một biểu mẫu web trong Python?
  • Làm cách nào để kết hợp HTML và Python?

<html>
 <body>
   <h2>Form Page</h2>
   
   <form method=GET>
    <fieldset>
   <legend>SAMPLE FORM</legend>
   <ul>
    <li>First Name: <input name='first'></li>
    <li>Last Name:  <input name='last'></li>
   </ul>
   <input type='submit' value='Submit Form'>
   </fieldset>
   </form>
   
 </body>
</html>
     

Mẫu đơn giản ở trên có hai trường đầu vào được gọi là 'đầu tiên' và 'cuối cùng' và nút gửi. Thuộc tính phương thức của biểu mẫu là 'GET' là mặc định và có nghĩa là khi người dùng nhấp vào "gửi biểu mẫu", trình duyệt sẽ gửi yêu cầu HTTP nhận được đến máy chủ với dữ liệu biểu mẫu được mã hóa trong URL. Vì vậy, nếu biểu mẫu trên được phục vụ tại URL http: // localhost: 8080/sau đó gửi biểu mẫu sẽ tạo yêu cầu cho url http: // localhost: 8080/? Đầu tiên = steve & last = cassidy. Yêu cầu HTTP sẽ trông giống như:

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    

Lưu ý rằng hai tên trường biểu mẫu được mã hóa trong URL cùng với dữ liệu mà tôi đã nhập và điều này được phản ánh trong dòng GET của yêu cầu.

Phương thức khác để gửi biểu mẫu là POST và tôi có thể dễ dàng sửa đổi biểu mẫu trên bằng cách thay đổi thuộc tính phương thức của biểu mẫu. Nếu chúng tôi sử dụng phương thức POST thì trình duyệt sẽ gửi yêu cầu POST đến máy chủ với dữ liệu biểu mẫu được mã hóa như một phần của thân yêu cầu. Đây là yêu cầu HTTP kết quả:

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    

Lưu ý rằng dữ liệu biểu mẫu xuất hiện giống như trong yêu cầu GET nhưng giờ đây nó là một phần của thân yêu cầu HTTP thay vì nằm trong URL.

Nhớ lại từ cuộc thảo luận của chúng tôi về các yêu cầu HTTP nhận và đăng có ý nghĩa khá khác nhau trong giao thức HTTP. Cách mà dữ liệu hình thành được mã hóa trong mỗi phản ánh những khác biệt này.

Nhận các yêu cầu được dự định sẽ được sử dụng để giải quyết các tài nguyên riêng biệt và vì vậy tất cả các thông tin xác định tài nguyên được bao gồm trong URL. Dữ liệu biểu mẫu được thêm vào yêu cầu GET giống như một vòng loại trên tên tài nguyên: ví dụ: cho tôi biết thời tiết, nhưng vào ngày này và ở vị trí này. URL có thể được đánh dấu hoặc gửi cho người khác.

Mặt khác, yêu cầu POST có nghĩa là phản ánh việc gửi dữ liệu cho tài nguyên web - để tạo tài nguyên phụ mới hoặc cập nhật hoặc sửa đổi một tài nguyên hiện có. Trong yêu cầu POST, dữ liệu biểu mẫu được gửi cùng dưới dạng tải trọng của yêu cầu. Không giống như yêu cầu GET, dữ liệu biểu mẫu không phải là vòng loại về tài nguyên được yêu cầu, đó là dữ liệu mà chúng tôi đang gửi. Các yêu cầu POST nên được sử dụng cho hầu hết các bài nộp biểu mẫu vì hầu hết thời gian, biểu mẫu đang thu thập dữ liệu người dùng và gửi nó đến ứng dụng web.

Xử lý dữ liệu biểu mẫu trong chai

Xử lý dữ liệu số

Hình thức xác nhận

Bài tập

Một ví dụ khác: Mẫu sử dụng GET

Làm cách nào để xử lý dữ liệu hình thức HTML trong Python?

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
0

Làm thế nào để bạn xử lý một biểu mẫu trong HTML?

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
1

Bộ trang trí tuyến đường mặc định trong chai sẽ chỉ xử lý yêu cầu GET, vì vậy mã trên sẽ được kích hoạt bất cứ khi nào chúng tôi nhận được yêu cầu nhận được URL gốc. Khi chúng tôi đã phục vụ trang, người dùng sẽ điền vào biểu mẫu với họ và họ và nhấp vào Gửi. Điều này sẽ tạo ra một yêu cầu POST cho URL gốc; Bây giờ chúng ta cần viết mã để xử lý yêu cầu đó:

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
2

Khi nhận được yêu cầu bài đăng, nó sẽ kích hoạt trình xử lý này. Hàm sau đó lấy các giá trị của hai trường mẫu từ

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
0 và xây dựng một phản hồi bằng cách sử dụng chúng.

Lưu ý rằng có một phiên bản tốc ký của

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
5 được sử dụng ở trên. Thay vào đó, tôi có thể viết
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
6 để chỉ ra rằng trình xử lý này chỉ nên được kích hoạt cho các yêu cầu POST.

Xử lý dữ liệu số

Nếu bạn đang xử lý dữ liệu số từ một biểu mẫu, ví dụ: bạn cần ai đó gửi chiều cao của họ tính bằng mét, bạn cần lấy lại giá trị điểm nổi từ biểu mẫu thay vì một chuỗi. Để đạt được điều này, bạn có thể cung cấp từ khóa

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
7 cho phương thức
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
8:
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
8

Từ khóa loại có thể được sử dụng cho các loại đơn giản khác như

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
9 và
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
00.

Hình thức xác nhận

Trong ví dụ trên, chúng tôi nhận được các giá trị của hai biến biểu mẫu từ yêu cầu và sử dụng chúng để xây dựng trang đầu ra. Điều này giả định rằng yêu cầu chứa một bản gửi biểu mẫu hợp lệ, nhưng đó có thể là trường hợp các giá trị không được điền vào biểu mẫu hoặc ai đó đang cố gắng tấn công ứng dụng bằng cách giả mạo biểu mẫu. Mã của chúng tôi nên mạnh mẽ chống lại những khả năng này.

Điều phổ biến nhất cần xác thực là một trường bắt buộc đã được người dùng điền vào. Trong trường hợp này, đối với hầu hết các loại trường biểu mẫu, yêu cầu sẽ chứa một giá trị cho trường nhưng giá trị sẽ trống. Kết quả là chúng tôi nhận được một chuỗi trống khi chúng tôi gọi

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
01 cho trường này. Nếu chúng tôi muốn kiểm tra xem trường 'đầu tiên' có được điền hay không, chúng tôi sẽ sử dụng mã sau:
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
2

Một ngoại lệ cho mẫu này là loại đầu vào nút radio trong một biểu mẫu. Nếu chúng tôi trình bày một bộ nút radio không có lựa chọn mặc định và người dùng không chọn bất cứ thứ gì, yêu cầu sẽ không chứa giá trị cho trường đó. Trong trường hợp này, cuộc gọi đến

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
01 sẽ trả lại
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
03.

Trường hợp cuối cùng để kiểm tra là khi ai đó gửi dữ liệu đến ứng dụng của bạn mà không cần thông qua biểu mẫu HTML của bạn. Điều này có thể xảy ra nếu bạn tự động kiểm tra mã của mình hoặc nếu ai đó đã viết 'bot để tự động hóa bài nộp. Một ứng dụng web mạnh mẽ sẽ kiểm tra các trường hợp này để đảm bảo rằng đầu vào mà chúng tôi mong đợi thực sự có mặt.

Để thực hiện kiểm tra này, chúng tôi có thể viết một hàm đơn giản lấy danh sách các tên trường và biểu mẫu và kiểm tra xem giá trị không phải là chuỗi trống hay không có cho mỗi trường bắt buộc. Nó sẽ trả về danh sách các thông báo lỗi có thể được chèn vào trang lỗi kết quả:

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
5

Điều này có thể được sử dụng trong ví dụ của chúng tôi như sau:

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
6

Bài tập

Đó là một ý tưởng tốt để có được nhiều thực hành với các loại hình thức và dữ liệu khác nhau để tìm ra các chi tiết của việc xử lý dữ liệu biểu mẫu. Bạn có thể đặt cho mình một số thách thức của các hình thức đơn giản được gửi đến các ứng dụng thực hiện một số loại tính toán. Dưới đây là một số ví dụ:

  1. Viết một ứng dụng trình bày một biểu mẫu cho người dùng để nhập chiều cao (cm) và trọng lượng (kg) của họ, ứng dụng nên tính toán chỉ số khối cơ thể (BMI) được định nghĩa là trọng lượng chia cho bình phương chiều cao tính bằng mét. Chiều cao và trọng lượng đầu vào và BMI nên được đưa vào trang kết quả.
  2. Viết một ứng dụng dựa trên biểu mẫu tính toán GPA (hoặc thống kê tương tự) được đưa ra một danh sách các lớp trong các đơn vị. Bạn có thể sử dụng một số đơn vị cố định (giả sử 5) để tạo biểu mẫu dễ dàng hơn. Đối với một thử thách thêm, hãy làm cho các lớp đã tham gia vào các trường mẫu sau khi bạn đã gửi biểu mẫu.
  3. Viết một ứng dụng dựa trên biểu mẫu kiểm tra xem ai đó có đủ tuổi để bỏ phiếu dựa trên ngày sinh của họ hay không, nhập DOB với hộp lựa chọn. Bạn chỉ có thể làm điều này với một thuật toán ngây thơ trừ đi năm nay từ năm sinh, nhưng đối với một thách thức thêm về cuộc thảo luận về độ tuổi tính toán từ ngày sinh ở Python.

Một ví dụ khác: Mẫu sử dụng GET

Hãy đi qua một ứng dụng ví dụ khác bằng các biểu mẫu, lần này với một biểu mẫu được gửi qua phương thức GET. Điều này là phù hợp nếu việc gửi biểu mẫu thực sự yêu cầu lấy một giá trị được đưa ra một số đầu vào. Trong ví dụ này, chúng tôi sẽ gửi một số tiền và một loại tiền tệ và lấy lại số tiền được chuyển đổi thành đô la Úc (AUD).

Đầu tiên tôi sẽ viết một chức năng nhỏ để thực hiện chuyển đổi, nó sẽ dựa trên từ điển tỷ lệ chuyển đổi tiền tệ. Tiền tệ sẽ được tra cứu và số tiền nhân với tỷ lệ liên quan. Đây là chức năng:

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
0

Nếu tên tiền tệ không được công nhận, nó sẽ trả về 0.

Để sử dụng điều này trong ứng dụng của chúng tôi, chúng tôi cần một biểu mẫu để cho phép nhập số tiền và tiền tệ. Số tiền sẽ là một đầu vào văn bản đơn giản nhưng loại tiền là một trong một tập hợp các giá trị cố định để chúng ta có thể sử dụng đầu vào Chọn:

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
1

Lưu ý rằng chúng tôi đã đánh dấu một trong các tùy chọn chọn là

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
04 để nó sẽ là tùy chọn mặc định khi trang tải. Đây là hình thức trông như thế nào:

Hướng dẫn html form action python - hành động hình thức html python

Ảnh chụp màn hình mẫu tiền tệ

Để hoàn thành mẫu trang, chúng tôi sẽ thêm một số mã để hiển thị kết quả chuyển đổi. Chúng tôi sẽ sử dụng cùng một mẫu để hiển thị trang ban đầu và kết quả chuyển đổi vì vậy chúng tôi chỉ cần hiển thị đoạn này nếu chúng tôi cung cấp giá trị cho một trong các biến, ví dụ

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
05.
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
2

Bây giờ chúng ta hãy là ứng dụng, trước tiên chúng ta cần một trình xử lý cho URL gốc để cung cấp một trang có chứa biểu mẫu. Chúng ta cần chuyển một giá trị cho

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
05 vào mẫu với giá trị
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
03 để câu lệnh IF trên sẽ hoạt động. Đây là mã:
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
3

Lưu ý rằng chúng tôi đã lưu trữ mã mẫu ở trên trong

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
08 trong thư mục chế độ xem.

Ứng dụng này sẽ cung cấp một trang chứa biểu mẫu. Khi người dùng nhập một số tiền và chọn một loại tiền tệ, sau đó nhấp vào nút Gửi, trình duyệt sẽ gửi yêu cầu nhận đến URL

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
09 với các giá trị biểu mẫu được thêm vào URL. Ví dụ.
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
4

Nếu chúng tôi làm điều này ngay bây giờ, chúng tôi sẽ gặp lỗi (404) vì chúng tôi không viết bất kỳ mã nào để xử lý yêu cầu cho URL này. Vì vậy, bây giờ chúng tôi cần thêm một trình xử lý để nhận yêu cầu vào ____39. Trình xử lý này cần lấy hai giá trị biểu mẫu và sau đó gọi hàm

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
11 ở trên. Đã thực hiện điều này, chúng tôi có thể sử dụng hàm
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
12 để truyền các giá trị này vào mẫu trang và tạo phản hồi. Đây là mã: Having done this we can use the
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
12 function to pass these values into the page template and generate the response. Here's the code:
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
5
Having done this we can use the
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
12 function to pass these values into the page template and generate the response. Here's the code:
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
5

Những điều cần lưu ý ở đây. Chúng tôi sử dụng

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
13 để truy cập dữ liệu biểu mẫu (đối với yêu cầu POST trước đó chúng tôi đã sử dụng
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
8). Đối với trường
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
15, chúng tôi cung cấp đối số
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

first=Steve&last=Cassidy    
    
7 để đảm bảo rằng giá trị chúng tôi lấy lại là một float chứ không phải là một chuỗi. Sau khi kéo hai giá trị trường biểu mẫu từ yêu cầu, chúng tôi tạo một từ điển chứa dữ liệu biểu mẫu và kết quả của việc chuyển đổi; Ba giá trị này được yêu cầu cho mẫu. Sau đó, chúng tôi chuyển từ điển
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
17 vào hàm mẫu.

Điều này hoàn thành ví dụ. Chúng tôi có hai trình xử lý tuyến đường, một tạo trang gốc chứa biểu mẫu, thứ hai xử lý dữ liệu biểu mẫu và tạo một trang chứa biểu mẫu và kết quả.

Một sửa đổi cuối cùng là thực hiện một số xử lý lỗi. Mã trên sẽ bị sập nếu không có giá trị cho một trong các biến biểu mẫu - vì vậy nếu người dùng không điền vào giá trị cho

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
15 và nhấp vào gửi, ứng dụng sẽ bị sập và trả lại phản hồi lỗi máy chủ 500. Tương tự, nếu giá trị của
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
15 không phải là số hợp lệ, chúng tôi sẽ gặp lỗi. Để đối phó với một trong những tình huống này, chúng ta có thể sử dụng đối số
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
20 cho
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
13. Điều này cung cấp một mặc định nếu giá trị không được cung cấp hoặc nếu nó không thể được chuyển đổi thành một chiếc phao. Đây là mã sửa đổi:
GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
6

Phiên bản này mạnh mẽ hơn một chút và sẽ luôn trả lời câu trả lời. Chúng tôi có thể làm tốt hơn bằng cách thông báo cho người dùng rằng họ thực sự nên điền vào giá trị cho

GET /?first=Steve&last=Cassidy HTTP/1.1
Host: localhost:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost:8080/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
15, nhưng chúng tôi sẽ để lại như một bài tập cho người đọc.

Làm cách nào để xử lý dữ liệu hình thức HTML trong Python?

Để đăng dữ liệu biểu mẫu HTML lên máy chủ ở định dạng được mã hóa URL bằng Python, bạn cần thực hiện yêu cầu POST HTTP cho máy chủ và cung cấp dữ liệu biểu mẫu HTML trong phần thân của thông báo Python Post. Bạn cũng cần chỉ định kiểu dữ liệu bằng cách sử dụng tiêu đề yêu cầu loại nội dung: Ứng dụng/X-www-form-urlencoded.make an HTTP POST request to the server and provide the HTML form data in the body of the Python POST message. You also need to specify the data type using the Content-Type: application/x-www-form-urlencoded request header.make an HTTP POST request to the server and provide the HTML form data in the body of the Python POST message. You also need to specify the data type using the Content-Type: application/x-www-form-urlencoded request header.

Làm thế nào để bạn xử lý một biểu mẫu trong HTML?

Thuộc tính phương thức 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 hành động).Dữ liệu biểu mẫu có thể được gửi dưới dạng các biến URL (với Phương thức = "get") hoặc dưới dạng giao dịch bài HTTP (với Phương thức = "Post").Ghi chú trên GET: Bổ số dữ liệu mẫu vào URL trong các cặp tên/giá trị. (the form-data is sent to the page specified in the action attribute). The form-data can be sent as URL variables (with method="get" ) or as HTTP post transaction (with method="post" ). Notes on GET: Appends form-data into the URL in name/value pairs. (the form-data is sent to the page specified in the action attribute). The form-data can be sent as URL variables (with method="get" ) or as HTTP post transaction (with method="post" ). Notes on GET: Appends form-data into the URL in name/value pairs.

Làm thế nào để bạn tự động hóa một biểu mẫu web trong Python?

Trình diễn: Làm thế nào để tự động hóa việc điền vào các biểu mẫu web với Python bằng Selenium ?...

Kịch bản thử nghiệm..

Bước 1: Tải xuống và cài đặt Python ..

Bước 2: Cài đặt Selenium WebDriver ..

Bước 3: Tải xuống và cài đặt mã Visual Studio ..

Cài đặt Trình quản lý WebDriver cho Thư viện Python ..

Làm cách nào để kết hợp HTML và Python?

Hợp nhất các tệp HTML thông qua Python...

Mở tài liệu đầu tiên ..

Mở tài liệu thứ hai ..

Thêm các trang của tài liệu thứ hai vào tài liệu thứ nhất ..

Lưu tệp đầu ra được nối ..