HTMLフォームから整数値を取得したいので、次のpythonコードを使用しました:
form = cgi.FieldStorage()
if not form.has_key("id"):
error_pop("There is no id in this form","The format of the request is not correct")
id = form["id"].value (*)
HTML ファイルでは、入力タイプを次のようにしますnumber
。
id: <input type="number" name="id" /><br />
ただし、行 ( ) から取得した id*
はまだ文字列のままのようです。
どうすれば整数に変換できますか?
を使用しようとしint(form["id"].value)
ましたが、python で次のエラーが表示されました。
<type 'exceptions.TypeError'>
: %d 形式: 文字列ではなく数値が必要です args = ('%d 形式: 文字列ではなく数値が必要です',) メッセージ = '%d 形式: 文字列ではなく数値が必要です'
ということで、使用を断念int()
。
に解析する前に値を出力しようとするとint()
、ブラウザから内部サーバー エラーが発生します。実際、pythonファイルで何かを変更すると、常にこのエラーが発生します。error_log.log からエラーを確認できます。
/usr/lib/python2.6/cgitb.py:173: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
value = pydoc.html.repr(getattr(evalue, name))
実際、error.log から今日の時刻を grep すると、現在のエラーは表示されませんが、実際には数時間前に発生したエラーが終了します...
新しいことがわかりました。「id」が関係している場合にのみ、内部サーバー エラーが表示されます。のようなid = form["idid"].value
ことをすると、エラーが発生します。
<type 'exceptions.TypeError'>: int() argument must be a string or a number, not 'NoneType'
args = ("int() argument must be a string or a number, not 'NoneType'",)
message = "int() argument must be a string or a number, not 'NoneType'"
どんな助けでも大歓迎です。