やりたいこと
pythonのスクリプトファイルをバッチで起動してwebアプリを実行したい。
環境
python3.7
bottle
わからないこと
よく分からないのが、コマンドでは実行できるのですが、同様の内容を記述したバッチでは実行できないのです。
エラーではテンプレートが見つからないようなことをいわれるのですが。
ご教示いただけると助かります。どうぞよろしくお願いいたします。
#バッチ C:\Users*****\AppData\Local\Programs\Python\Python37-32\python.exe C:\Users*****\py\svr.py
#エラーメッセージ Error: 500 Internal Server Error Sorry, the requested URL 'http://localhost:8080/diff' caused an error: Template 'diff' not found.
python
1from bottle import route, run, template, request 2import datetime 3 4@route("/diff") 5def diff(): 6 return template("diff",tp_d1_01="_____",tp_d2_01="_____",tp_rt_01="__",tp_text_01="__",tp_d1_01_ad="",tp_d2_01_ad="",\ 7 tp_d1_02="_____",tp_d2_02="_____",tp_rt_02="__",tp_text_02="__",tp_d1_02_ad="",tp_d2_02_ad="",\ 8 tp_d1_03="_____",tp_d2_03="_____",tp_rt_03="__",tp_text_03="__",tp_d1_03_ad="",tp_d2_03_ad="",\ 9 tp_d1_04="_____",tp_d2_04="_____",tp_rt_04="__",tp_text_04="__",tp_d1_04_ad="",tp_d2_04_ad="",\ 10 tp_d1_05="_____",tp_d2_05="_____",tp_rt_05="__",tp_text_05="__",tp_d1_05_ad="",tp_d2_05_ad="",\ 11 total="") 12 13era = { '西暦':0, '昭和':1925, '平成':1988, '令和':2018 } 14@route("/diff",method="POST") 15 16def diff(): 17 try: 18 #期間1################################################################################# 19 era1_01 = request.forms.nengo_start_01 20 era2_01 = request.forms.nengo_end_01 21 d1_str_01 = request.forms.start_01 22 d2_str_01 = request.forms.end_01 23 rt_str_01 = request.forms.rate_01 24 25 if era1_01 in era.keys(): 26 yymmdd = d1_str_01.split('/') 27 d1_01 = datetime.date(era[era1_01] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 28 else: 29 d1_01 = None 30 31 if era2_01 in era.keys(): 32 yymmdd = d2_str_01.split('/') 33 d2_01 = datetime.date(era[era2_01] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 34 else: 35 d2_01 = None 36 d3_01 = d2_01 + datetime.timedelta(days=1) 37 rt_01 = float(rt_str_01) 38 years_01 = ((d3_01.year - d1_01.year)*12 + d3_01.month - d1_01.month)*rt_01*100//12/100 39 40 #期間2################################################################################# 41 era1_02 = request.forms.nengo_start_02 42 era2_02 = request.forms.nengo_end_02 43 d1_str_02 = request.forms.start_02 44 d2_str_02 = request.forms.end_02 45 rt_str_02 = request.forms.rate_02 46 47 if era1_02 in era.keys(): 48 yymmdd = d1_str_02.split('/') 49 d1_02 = datetime.date(era[era1_02] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 50 else: 51 d1_02 = None 52 53 if era2_02 in era.keys(): 54 yymmdd = d2_str_02.split('/') 55 d2_02 = datetime.date(era[era2_02] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 56 else: 57 d2_02 = None 58 d3_02 = d2_02 + datetime.timedelta(days=1) 59 rt_02 = float(rt_str_02) 60 years_02 = ((d3_02.year - d1_02.year)*12 + d3_02.month - d1_02.month)*rt_02*100//12/100 61 62 #期間3################################################################################# 63 era1_03 = request.forms.nengo_start_03 64 era2_03 = request.forms.nengo_end_03 65 d1_str_03 = request.forms.start_03 66 d2_str_03 = request.forms.end_03 67 rt_str_03 = request.forms.rate_03 68 69 if era1_03 in era.keys(): 70 yymmdd = d1_str_03.split('/') 71 d1_03 = datetime.date(era[era1_03] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 72 else: 73 d1_03 = None 74 75 if era2_03 in era.keys(): 76 yymmdd = d2_str_03.split('/') 77 d2_03 = datetime.date(era[era2_03] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 78 else: 79 d2_03 = None 80 d3_03 = d2_03 + datetime.timedelta(days=1) 81 rt_03 = float(rt_str_03) 82 years_03 = ((d3_03.year - d1_03.year)*12 + d3_03.month - d1_03.month)*rt_03*100//12/100 83 84 #期間4################################################################################# 85 era1_04 = request.forms.nengo_start_04 86 era2_04 = request.forms.nengo_end_04 87 d1_str_04 = request.forms.start_04 88 d2_str_04 = request.forms.end_04 89 rt_str_04 = request.forms.rate_04 90 91 if era1_04 in era.keys(): 92 yymmdd = d1_str_04.split('/') 93 d1_04 = datetime.date(era[era1_04] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 94 else: 95 d1_04 = None 96 97 if era2_04 in era.keys(): 98 yymmdd = d2_str_04.split('/') 99 d2_04 = datetime.date(era[era2_04] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 100 else: 101 d2_04 = None 102 d3_04 = d2_04 + datetime.timedelta(days=1) 103 rt_04 = float(rt_str_04) 104 years_04 = ((d3_04.year - d1_04.year)*12 + d3_04.month - d1_04.month)*rt_04*100//12/100 105 106 #期間5################################################################################# 107 era1_05 = request.forms.nengo_start_05 108 era2_05 = request.forms.nengo_end_05 109 d1_str_05 = request.forms.start_05 110 d2_str_05 = request.forms.end_05 111 rt_str_05 = request.forms.rate_05 112 113 if era1_05 in era.keys(): 114 yymmdd = d1_str_05.split('/') 115 d1_05 = datetime.date(era[era1_05] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 116 else: 117 d1_05 = None 118 119 if era2_05 in era.keys(): 120 yymmdd = d2_str_05.split('/') 121 d2_05 = datetime.date(era[era2_05] + int(yymmdd[0]), int(yymmdd[1]), int(yymmdd[2])) 122 else: 123 d2_05 = None 124 d3_05 = d2_05 + datetime.timedelta(days=1) 125 rt_05 = float(rt_str_05) 126 years_05 = ((d3_05.year - d1_05.year)*12 + d3_05.month - d1_05.month)*rt_05*100//12/100 127 128 129 return template("diff",tp_d1_01=era1_01+d1_str_01,tp_d2_01=era2_01+d2_str_01,tp_rt_01=rt_01,tp_text_01=years_01,tp_d1_01_ad=d1_01,tp_d2_01_ad=d2_01,\ 130 tp_d1_02=era1_02+d1_str_02,tp_d2_02=era2_02+d2_str_02,tp_rt_02=rt_02,tp_text_02=years_02,tp_d1_02_ad=d1_02,tp_d2_02_ad=d2_02,\ 131 tp_d1_03=era1_03+d1_str_03,tp_d2_03=era2_03+d2_str_03,tp_rt_03=rt_03,tp_text_03=years_03,tp_d1_03_ad=d1_03,tp_d2_03_ad=d2_03,\ 132 tp_d1_04=era1_04+d1_str_04,tp_d2_04=era2_04+d2_str_04,tp_rt_04=rt_04,tp_text_04=years_04,tp_d1_04_ad=d1_04,tp_d2_04_ad=d2_04,\ 133 tp_d1_05=era1_05+d1_str_05,tp_d2_05=era2_05+d2_str_05,tp_rt_05=rt_05,tp_text_05=years_05,tp_d1_05_ad=d1_05,tp_d2_05_ad=d2_05,\ 134 total = years_01+years_02+years_03+years_04+years_05) 135 136 137 except: 138 return template("diff",tp_d1_01=era1_01+d1_str_01,tp_d2_01=era2_01+d2_str_01,tp_rt_01=rt_01,tp_text_01=years_01,tp_d1_01_ad=d1_01,tp_d2_01_ad=d2_01,\ 139 tp_d1_02=era1_02+d1_str_02,tp_d2_02=era2_02+d2_str_02,tp_rt_02=rt_02,tp_text_02=years_02,tp_d1_02_ad=d1_02,tp_d2_02_ad=d2_02,\ 140 tp_d1_03=era1_03+d1_str_03,tp_d2_03=era2_03+d2_str_03,tp_rt_03=rt_03,tp_text_03=years_03,tp_d1_03_ad=d1_03,tp_d2_03_ad=d2_03,\ 141 tp_d1_04=era1_04+d1_str_04,tp_d2_04=era2_04+d2_str_04,tp_rt_04=rt_04,tp_text_04=years_04,tp_d1_04_ad=d1_04,tp_d2_04_ad=d2_04,\ 142 tp_d1_05=era1_05+d1_str_05,tp_d2_05=era2_05+d2_str_05,tp_rt_05=rt_05,tp_text_05=years_05,tp_d1_05_ad=d1_05,tp_d2_05_ad=d2_05,\ 143 total = years_01+years_02+years_03+years_04+years_05) 144 145run(host="localhost",port=8080,debug=True) 146
色々不明点がありますので、以下、教えてください。
Q1. 手入力でコマンドで実行するとき、バッチファイルに書いてある内容と一字一句同じで、正しく動作しますか。
Q2. 手入力でコマンドを実行して成功するときのカレントディレクトリはどこでしょうか。(コマンドプロンプト上で CD と打った時の表示内容です)
Q3. バッチファイルはどこに置いてありますか。
Q4. バッチファイルを実行するとき、どのように実行していますか。ダブルクリックでしょうか。
ご返答ありがとうございます。以下追記情報となります。
Q1、Q2.すみません、違います。コマンドで入力する場合はスクリプトファイルの置いてあるディレクトリまで移動の上、python svr.pyと入力してます。
Q3.スクリプトファイルのディレクトリにバッチ用のフォルダを作成し、その中に置いてあります。
Q4.はい、ダブルクリックです。
恐れ入ります。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー