質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

1336閲覧

cloud9上におけるpythonウェブアプリの不具合について(つづき)

keimy

総合スコア7

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2017/08/09 18:15

前回の質問の続きになります。よろしくお願いいたします。。

python3のウェブアプリを作りまして、ローカルでは問題なく動作しているのですが、cloud9のレンタルサーバー上で動かそうとしたところ動作不良がありました。
動作方法としてはcgi-binフォルダにpythonスクリプトを入れてcgiで動かしており、ウェブアプリ自体は動作しております。
以下のコードにおいて、with...以前までは動作していて、そのあとが動作していない状態です。
煩雑で拙いコードですがローカルでは問題なく動作しており、今回の動作不良の原因について、御指摘・御回答いただけると嬉しいです。

#! /usr/bin/env python3 import cgi ; form = cgi.FieldStorage() import cgitb ; cgitb.enable() import sys,io sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') print("Content-Type: text/html ;charset=utf-8") ; print() # HTMLの入力フォームをpythonに受け渡す LOG_FILE = form.getvalue("file","text/循環器.txt") search = form.getvalue("search","").strip() andor = form.getvalue("andor","and") # HTMLを出力 head = "<meta charset='utf-8'><title>PROJECT KEIMY</title><link href='/stylesheet.css' rel='stylesheet' type='text/css'></link>" body = "<body name='main' style='background:skyblue ; font-size:15'></body>" print(head) print(body) print("ここまでは表示されてる") #実験 # 以下はログファイルに影響しない。 with open(LOG_FILE, mode="r",encoding="utf-8") as f: print("これは表示されない") # linesはindex付加したリスト、anssは最終的な出力リスト lines=[]; anss=[]; index=1 for line in f: line = str(index)+" "+line; lines.append(line); index+=1 # revコマンド:古い順に表示 if "rev" in search: search = search.replace("rev","").strip() ;lines.reverse() else: pass # 基本状態=空白入力:全表示 if search=="" and andor!="rate": anss=lines # and検索: elif search != "" and andor=="and": searches = search.split() # 空白区切でsearchesリストに格納 for line in lines: flag = True for search in searches: if search in line: line = line.replace(search,"<a>"+search+"</a>") else: flag = False ; break if flag: anss.append(line); # or検索: elif search != "" and andor=="or": searches = search.split() # 空白区切でsearchesリストに格納 for line in lines: flag = False for search in searches: if search in line: line = line.replace(search,"<a>"+search+"</a>") ; flag = True if flag: anss.append(line); # レート検索: elif andor=="rate": searches=[] try: search = [int(i) for i in search.split()] if len(search)==1: min=search[0]; max=100 elif len(search)==2: min=search[0]; max=search[1] if min>max or min<0 or max>100: print("Invalid Value !<br>"); min=90; max=100 except: min=90; max=100 print("正答率"+str(min)+"%-"+str(max)+"%:") for i in range(min,max+1): searches.append("正答率"+str(i)+".") for line in lines: flag = False if "正答率100" in line: line = "<a>【100%】</a>"+line; for search in searches: if search in line: line = line.replace(search,"<a>"+search+"</a>") ; flag = True if flag: anss.append(line); # 出力 total=len(lines); hit=len(anss); r=int(hit/total*100) print(str(hit)+" / "+str(total)+" ("+str(r)+"%)") for ans in anss: print("<hr>"+ans)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2017/08/10 01:38

~/lib/apache2/log/error.logに何らか記録されていないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問