1

だから私は現在、PythonにWebページにhtmlを出力させようとしています。画面に何も表示されず、理由がわからないため、機能していません。次のようにサーバーを実行します。

from http.server import HTTPServer, CGIHTTPRequestHandler

port = 8080

httpd = HTTPServer(('', port), CGIHTTPRequestHandler)
print("Starting simple_httpd on port: " + str(httpd.server_port))
httpd.serve_forever()

私の単純なファイルは、私が試みている方法でこれを達成できることをテストして確認するためのものです。このフォームは、電子メールの入力が 1 つあるフォームを受信して​​います。

#! /usr/local/bin/python3
#This file is used for testing to make sure output to browser is as expected

import cgi
form_data = cgi.FieldStorage()
email = form_data['email'].value

print("<!doctype html> <br />")
print("<html> <head></head><body>")

print("<p>This is the email info: " + email+</p>)
print("</body>")
print("<html>")

私はpythonが初めてで、基本的にこれを印刷しようとしています。私は検索しましたが、まだ答えを見つけていません。だから、スタックオーバーフローの著名な心が私を助けてくれることを願っています. いくつかのことを印刷できるようにするためだけに、フレームワークは必要ありませんが、なぜ機能しないのかわかりません。

4

2 に答える 2

1

HTMLタグを閉じていません。最後のものを /html に変更します。

于 2012-04-29T06:52:44.177 に答える
0

私は約1日の間自分の答えを探していましたが、ついに答えを見つけました。それは最も単純なことでしたが、Python開発者が知らない私を驚かせる何かです。どうやら、何かを出力する前にこの行を追加する必要があります:

print('Content-type: text/html \n')

今では、Pythonの前にCGIスクリプトを扱ったことがないので、それがすべてのスクリプトの要件であるかどうかはわかりません。このため、その背後にある実際の理由はわかりません。また、新しい文字行がないと機能しないため、新しい文字行が存在する必要があることに注意することも重要です。それについてもよくわかりません。同様の問題を抱えている人が、Pythonコードに集中できるフレームワークを学ぶのではなく、Pythonで小さなWebページを作成するのを大幅に簡素化するので、これに遭遇することを願っています。

上記の修正を行う必要がある理由を実際に知っている人にも感謝します。

于 2012-04-30T02:31:11.593 に答える