Làm cách nào để bạn truy cập dữ liệu biểu mẫu html trong python?

Xin chào mọi người, trong bài đăng này, chúng ta sẽ xem xét cách giải quyết vấn đề Flask Get Data From Html Form bằng ngôn ngữ lập trình

from flask import Flask,url_for,request
''' html form:

     
     submit
 
'''
@app.route['/posted', methods=['POST']]
def posted[]:
  data = request.form['post']
  return '

'+data+'

'

Với nhiều ví dụ, chúng ta đã thấy cách giải quyết vấn đề Flask Get Data From Html Form

Làm cách nào để lấy dữ liệu từ html sang python Flask?

  • lời yêu cầu. hình thức. 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
  • lời yêu cầu. hình thức. 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 dữ liệu biểu mẫu HTML bằng 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 tạo một 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 nội dung của thông báo POST Python. Bạn cũng cần chỉ định loại dữ liệu bằng cách sử dụng Content-Type. tiêu đề yêu cầu ứng dụng/x-www-form-urlencoded. 15-Tháng 9-2022

Làm cách nào để lấy Formdata trong Flask?

Bạn có thể lấy dữ liệu biểu mẫu từ đối tượng yêu cầu của Flask bằng thuộc tính biểu mẫu. từ Flask nhập bình, yêu cầu ứng dụng = Flask[__name__] @app. route['/', methods=['GET', 'POST']] def index[]. dữ liệu = yêu cầu. 10-Feb-2017

Làm cách nào để kết nối Flask với html?

Kết xuất tệp HTML trong Flask

  • Đầu tiên, tạo một thư mục mới trong thư mục dự án có tên là mẫu. Tạo một tệp mới trong thư mục mẫu có tên là “home. html”. Sao chép/dán mã đơn giản này
  • Bây giờ hãy mở ứng dụng. py và thêm đoạn mã sau. từ Flask nhập bình, render_template. ứng dụng = Flask[__name__] @app

Làm cách nào để lưu dữ liệu biểu mẫu HTML từ CSV sang Python?

Chuyển đổi Bảng HTML thành tệp CSV trong Python. Thí dụ. Giả sử tệp HTML trông giống như bảng HTML có thể được chuyển đổi thành tệp CSV bằng cách sử dụng mô-đun BeautifulSoup và Pandas của Python. Các mô-đun này không được tích hợp sẵn với Python. Để cài đặt chúng, gõ lệnh dưới đây trong thiết bị đầu cuối. 01-Aug-2022

Làm cách nào để nhập biểu mẫu vào Flask?

từ bình nhập Flask, render_template , request, url_for, flash, redirect # Trước tiên, bạn sẽ nhập thông tin sau từ khung Flask

  • Đối tượng yêu cầu chung để truy cập dữ liệu yêu cầu đến sẽ được gửi qua biểu mẫu HTML mà bạn đã tạo ở bước trước
  • Hàm url_for[] để tạo URL

Làm cách nào để hiển thị đầu ra HTML bằng Python?

Để hiển thị tệp HTML dưới dạng đầu ra python, chúng tôi sẽ sử dụng thư viện codec. Thư viện này được sử dụng để mở các tệp có mã hóa nhất định. Nó nhận một mã hóa tham số làm cho nó khác với hàm open[] tích hợp. 24-Jan-2021

Làm cách nào để hiển thị dữ liệu biểu mẫu trong HTML?

The formtarget attribute specifies a name or a keyword that indicates where to display the response that is received after submitting the form. The formtarget attribute overrides the target attribute of the element. Note: The formtarget attribute is new for the element with type="submit" in HTML5.

Làm cách nào để nhận các giá trị biểu mẫu khi gửi?

Để nhận các giá trị đầu vào khi gửi biểu mẫu trong React. Lưu trữ các giá trị của các trường đầu vào trong các biến trạng thái. Đặt chỗ dựa onSubmit trên phần tử biểu mẫu. Truy cập các giá trị của các trường đầu vào trong hàm handleSubmit của bạn. 23-Apr-2022

Làm cách nào để trích xuất dữ liệu từ một biểu mẫu trong Python?

Phương thức getObject[] được sử dụng ở dòng cuối cùng của mã sẽ truy xuất đối tượng thực tế. Nếu đối tượng là một đối tượng văn bản, sử dụng hàm str[] sẽ cung cấp cho bạn văn bản thực tế. Mặt khác, phương thức getData[] cần được sử dụng để hiển thị dữ liệu từ đối tượng. 01-Apr-2020

sau khi gửi biểu mẫu này, nó sẽ chuyển đến trang python có tên getData. py, nơi bạn sẽ tìm nạp dữ liệu từ trang HTML này và hiển thị. thì bên dưới là mã cho python CGI

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]

Cập nhật ngày 30-Jul-2019 22. 30. 22

Xử lý biểu mẫu là nền tảng cho bất kỳ ứng dụng web nào. Biểu mẫu cho phép người dùng tương tác với ứng dụng bằng cách điền vào các trường dữ liệu và tải tệp lên. Ứ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 đó. Để 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 và gửi nó đến tập lệnh ứng dụng trong môi trường WSGI


 
   Form Page
   
   
    
   SAMPLE FORM
   
  • First Name:
  • Last Name:

Biểu 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à một nút gửi. Thuộc tính phương thức của biểu mẫu là 'GET', đây là giá trị 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 GET đế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 cung cấp tại URL http. //máy chủ cục bộ. 8080/ sau đó gửi biểu mẫu sẽ tạo yêu cầu tới URL http. //máy chủ cục bộ. 8080/?first=Steve&last=Cassidy. Yêu cầu HTTP sẽ 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: //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 ta 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 nội dung yêu cầu. Đây là kết quả yêu cầu HTTP

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: //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: //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 nội dung 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 ta về các yêu cầu HTTP mà GET và POST có ý nghĩa hoàn toàn khác nhau trong giao thức HTTP. Cách dữ liệu biểu mẫu được mã hóa trong mỗi phản ánh những khác biệt này

Các yêu cầu GET nhằm mục đích sử dụng để giải quyết các tài nguyên riêng biệt và do đó, tất cả thông tin xác định tài nguyên đều đượ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à ở địa điểm này. URL GET 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 tới 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 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 với 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 đối với 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 lần gửi 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ó tới ứng dụng web

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

Chai làm cho bất kỳ dữ liệu biểu mẫu nào được gửi với yêu cầu có sẵn thông qua đối tượ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: //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
    
7. Mỗi cách mà dữ liệu biểu mẫu có thể được gửi đều được xử lý tự động bởi Chai, cung cấp cho lập trình viên một giao diện đơn giản để đọc dữ liệu đã được gửi

Chai sử dụng cấu trúc dữ liệu FormsDict để lưu trữ dữ liệu nhận được trong một yêu cầu. FormsDict hoạt động hơi giống một từ điển Python thông thường và cho phép lập trình viên truy cập các trường biểu mẫu được gửi giống như các mục nhập trong từ điển. Các loại dữ liệu biểu mẫu khác nhau được cung cấp dưới dạng các thuộc tính khác nhau của đối tượ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: //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
    
7. Bất kỳ dữ liệu nào được gửi dưới dạng yêu cầu GET [trong chuỗi truy vấn] đều có sẵn dưới 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: //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
    
9 trong khi các biểu mẫu được gửi qua POST có sẵn dưới dạng
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: //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: //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. Trong mỗi trường hợp, giá trị của biến hình thức
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: //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: //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    
    
1 có thể được truy cập dưới dạng
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: //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: //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 hoặc
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: //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: //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    
    
3

Đây là một ứng dụng ví dụ minh họa việc gửi biểu mẫu cơ bản với Chai. Trước tiên, chúng tôi viết một mẫu đơn giản có chứa biểu mẫu và khoảng trống cho thông báo

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
2

Lưu ý rằng hành động của biểu mẫu được đặt thành URL gốc [/] và phương thức là POST, nghĩa là để xử lý biểu mẫu, chúng ta cần xử lý các yêu cầu POST tới URL này. Tuy nhiên, bước đầu tiên là cung cấp biểu mẫu cho người dùng để họ có thể điền và gửi biểu mẫu. Do đó, chúng tôi viết trình xử lý cho URL gốc để chỉ phục vụ mẫu với một thông báo cố định

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
3

Trình trang trí tuyến đường mặc định trong Chai sẽ chỉ xử lý yêu cầu GET, vì vậy đoạn 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 GET cho 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à tên và nhấp vào Gửi. Điều này sẽ tạo một yêu cầu POST tới URL gốc;

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
4

Khi nhận được yêu cầu POST, nó sẽ kích hoạt trình xử lý này. Sau đó, hàm truy xuất các giá trị của hai trường biểu mẫu từ

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: //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: //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à tạo 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: //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: //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: //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: //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 đăng bài

Xử lý dữ liệu số

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

POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: //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: //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 pháp
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Origin: //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: //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


 
   Form Page
   
   
    
   SAMPLE FORM
   
  • First Name:
  • Last Name:
0

Từ khóa type 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: //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: //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à
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
20

Xác thực biểu mẫu

Trong ví dụ trên, chúng ta lấy 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 lầ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ố tấn công ứng dụng bằng cách gửi biểu mẫu giả mạo. Mã của chúng tôi phải mạnh mẽ trước những khả năng này

Điều phổ biến nhất để xác thực là 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ị này 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

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
21 cho trường này. Nếu chúng tôi muốn kiểm tra xem trường 'đầu tiên' đã được điền chưa, chúng tôi sẽ sử dụng đoạn mã sau


 
   Form Page
   
   
    
   SAMPLE FORM
   
  • First Name:
  • Last Name:
4

Một ngoại lệ đối với mẫu này là loại đầu vào nút radio trong 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 kỳ thứ gì, thì 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 tới

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
21 sẽ trả về
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
23

Trường hợp cuối cùng cần kiểm tra là khi ai đó gửi dữ liệu đến ứng dụng của bạn mà không 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 đang tự động kiểm tra mã của mình hoặc nếu ai đó đã viết 'bot để tự động gửi. Một ứng dụng web mạnh mẽ sẽ kiểm tra những 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 ta có thể viết một hàm đơn giản lấy danh sách tên trường và biểu mẫu rồi kiểm tra xem giá trị có phải là chuỗi rỗng hoặc Không có đối với từng trường bắt buộc không. Nó sẽ trả về một danh sách các thông báo lỗi có thể được chèn vào trang lỗi kết quả


 
   Form Page
   
   
    
   SAMPLE FORM
   
  • First Name:
  • Last Name:
7

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


 
   Form Page
   
   
    
   SAMPLE FORM
   
  • First Name:
  • Last Name:
8

bài tập

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

  1. Viết ứng dụng hiển thị biểu mẫu để người dùng nhập chiều cao [cm] và cân nặng [kg], ứng dụng sẽ tính Chỉ số khối cơ thể [BMI] được định nghĩa là cân nặng chia cho bình phương chiều cao tính bằng mét. Chiều cao và cân nặng đầu vào và chỉ số BMI phải đượ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 điểm trung bình [hoặc thống kê tương tự] cho một danh sách các điểm theo đơn vị. Bạn có thể sử dụng một số đơn vị cố định [ví dụ 5] để tạo biểu mẫu dễ dàng hơn. Đối với một thử thách bổ sung, hãy làm cho các điểm đã nhập tồn tại trong các trường của biểu 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 hay không dựa trên ngày sinh của họ, 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ừ năm hiện tại từ năm sinh, nhưng để có thêm thử thách, hãy xem cuộc thảo luận này về cách tính tuổi từ ngày sinh trong Python

Một vi dụ khac. Biểu mẫu sử dụng GET

Hãy xem qua một ứng dụng ví dụ khác sử dụng biểu mẫu, lần này với biểu mẫu được gửi qua phương thức GET. Điều này phù hợp nếu việc gửi biểu mẫu thực sự yêu cầu truy xuất một giá trị được cung cấp 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à nhận lại số tiền đã chuyển đổi sang Đô la Úc [AUD]

Đầu tiên tôi sẽ viết một hàm nhỏ để thực hiện chuyển đổi, nó sẽ dựa trên từ điển về tỷ giá chuyển đổi tiền tệ. Đơn vị tiền tệ sẽ được tra cứu và số tiền nhân với tỷ giá phù hợp. Đâ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: //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 nhận dạng, nó sẽ trả về số không

Để 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ố lượng và loại tiền. Số tiền sẽ là một kiểu nhập văn bản đơn giản nhưng tiền tệ là một trong những tập hợp các giá trị cố định để chúng tôi có thể sử dụng kiểu nhập đã 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: //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 được chọn là

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
24 để nó sẽ là tùy chọn mặc định khi tải trang. Đây là hình thức trông như thế nào

Ảnh chụp màn hình biểu 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ả của 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ụ:

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
25

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: //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ờ 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 để phân phối một trang chứa biểu mẫu. Chúng ta cần chuyển một giá trị cho

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
25 vào mẫu có giá trị là
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
23 để câu lệnh if ở trên 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: //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

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
28 trong thư mục lượt xem

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

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
29 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: //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 bây giờ, chúng tôi sẽ gặp lỗi [404] vì chúng tôi chưa 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 ta cần thêm một trình xử lý cho các yêu cầu GET tới

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
29. Trình xử lý này cần lấy hai giá trị biểu mẫu rồi gọi hàm
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
31 ở trên.
Làm xong việc này, chúng ta có thể sử dụng hàm
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
32 để chuyển các giá trị này vào mẫu trang và tạo phản hồi. Đâ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: //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

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
33 để 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: //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: //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
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
35, 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: //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: //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 nhận được là một số float chứ không phải là một chuỗi. Sau khi lấy 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 chuyển đổi; . Sau đó, chúng tôi chuyển từ điển
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
37 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ý định tuyến, một trình tạo trang gốc chứa biểu mẫu, trình thứ hai xử lý dữ liệu biểu mẫu và tạo trang chứa biểu mẫu và kết quả

Một sửa đổi cuối cùng sẽ là thực hiện một số xử lý lỗi. Mã ở trên sẽ bị lỗi 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 giá trị cho

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
35 và nhấp vào Gửi, ứng dụng sẽ gặp sự cố và trả về 500 Phản hồi Lỗi Máy chủ. Tương tự, nếu giá trị của
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
35 không phải là số hợp lệ, chúng tôi sẽ gặp lỗi. Để giải quyết một trong hai tình huống này, chúng ta có thể sử dụng đối số
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
40 với
#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
33. Điều này cung cấp một giá trị 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 float. Đâ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: //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 hơn một chút và sẽ luôn 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 một giá trị cho

#!C:\Python27\python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage[]
# Get data from fields
first_name = form.getvalue['first_name']
last_name  = form.getvalue['last_name']
print["Content-type:text/html"]
print
print[""]
print[""]
print["Hello - Second CGI Program"]
print[""]
print[""]
print["
   Hello %s %s
   " % [first_name, last_name]]
print[""]
print[""]
35, nhưng chúng tôi sẽ để nó như một bài tập cho người đọc ngay bây giờ

Bạn có thể đọc tệp HTML bằng Python không?

Nếu bạn muốn đọc tệp HTML dưới dạng chuỗi, bạn cần chuyển đổi kết quả bằng phương thức decode[] của Python . nhập urllib. yêu cầu như r. trang = r.

Làm cách nào chúng ta có thể kết nối HTML với Python?

Cách lấy URL biểu mẫu tệp HTML bằng Python .
Gọi hàm đọc trên biến webURL
Biến đọc cho phép đọc nội dung của tệp dữ liệu
Đọc toàn bộ nội dung của URL vào một biến gọi là dữ liệu
Chạy mã- Nó sẽ in dữ liệu sang định dạng HTML

Chức năng nào được sử dụng để lấy dữ liệu biểu mẫu HTML?

Thuộc tính phương thức method attribute 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 biến URL [với method="get" ] hoặc dưới dạng giao dịch bài đăng HTTP [với method="post" ]. Ghi chú về NHẬN. Nối dữ liệu biểu mẫu vào URL theo cặp tên/giá trị.

Chủ Đề