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

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

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

Bottleは、PythonのWebサーバです。1つのPythonファイルで構成されており、非常に軽量。Web APIの作成や導入が簡単で、DjangoやFlaskに比べ使いやすくシンプルなことが特徴です。

Python 3.x

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

Q&A

解決済

1回答

2059閲覧

python bottleで作成したページの背景が変わらない

hanpanai-tumi

総合スコア26

Bottle

Bottleは、PythonのWebサーバです。1つのPythonファイルで構成されており、非常に軽量。Web APIの作成や導入が簡単で、DjangoやFlaskに比べ使いやすくシンプルなことが特徴です。

Python 3.x

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

0グッド

0クリップ

投稿2017/07/16 13:04

編集2017/07/17 04:51

###前提・実現したいこと
作成したページ上に背景を変えたい
###発生している問題・エラーメッセージ
エラーは発生しないが、ページの背景が真っ白のまま変わらない

エラーメッセージ

###該当のソースコード

```#!/user/bin/env python # -*- coding: utf-8 -*- from bottle import route, run, template, request, static_file, url, get, post, response, error import sys, codecs import random import time import urllib.request import urllib.parse import urllib3 import re import xml.etree.ElementTree as ET sys.stdout = codecs.getwriter("utf-8")(sys.stdout) @route("/") def html_index(): return template("index") @route("/static/<filepath:path>", name="static_file") def static(filepath): return static_file(filepath, root="./static") @view("hello_template") def hello(name, count): return dict(name=name, count=count, url=url) class GoogleSuggestAPI: def __init__(self): self.base_url = 'http://www.google.co.jp/complete/search?output=toolbar&q=' self.xml_re = re.compile('<CompleteSuggestion><suggestion data="(.+?)"/><num_queries int="(.+?)"/></CompleteSuggestion>', re.DOTALL) def get(self, query): try: reader = urllib.request.urlopen(self.base_url + urllib.parse.quote_plus(query)) except Exception as e: print (e) return None buf=reader.read() print(buf) buf = buf.decode('sjis',"ignore") root = ET.fromstring(buf) Res=[] for c in root: dat=c[0] attrs=dat.attrib suggest=attrs["data"] L = len(query) #L文字目以降を取り出す suggest=suggest[L:] #空白を削除する suggest=suggest.strip() Res.append(suggest) print (Res) return Res marks = ['ハンバーグ','カレー','ラーメン'] food = random.choice(marks) #ボタンの生成 @get("/login") def login(): hp = """ <form action="/login" method="post"> 料理名を入力!!: <input name="dish" type="text" /> <input value="Answer" type="submit" /> </form> """ B = [] if '__main__' == __name__: gsapi = GoogleSuggestAPI() result_list = gsapi.get(food + " ") if result_list is None: return ('Error') exit() for result in result_list: B.append(result + '<br>') return ( hp + "".join(B) ) @route("/login", method="POST") def do_login(): dish = request.forms.decode().get( 'dish' ) if check_login(dish): return "<p>正解です !</p>" else: return "<p>不正解です !</p>" def check_login(dish): if (food.encode('utf-8')) == (dish.encode('utf-8')): return True else: return False @error(404) def error404(error): return template("404") run(host="localhost", port=8080, debug=True, reloader=True) #hello_template.tpl <img src="{{url('static_file', filepath="image.jpg")}}"> ###試したこと 公開されているプログラム(@viewの所)を参考にしましたが上手くいきませんでした。 ###補足情報(言語/FW/ツール等のバージョンなど) 言語はpythonでフレームワークにbottleを使用しています。

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

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

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

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

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

odan

2017/07/16 16:26

問題のソースコードがうまく貼られていないので修正お願いします
guest

回答1

0

ベストアンサー

Imageが表示されない原因は、

Python

1@view("hello_template") 2def hello(name, count): 3 return dict(name=name, count=count, url=url)

viewを作成しているにも関わらず、そのviewを表示する為の routeが無いことかと思われます。

とりあえず、Imageを表示するには

Python

1@route("/hello/<name>/<count>") 2@view("hello_template") 3def hello(name, count): 4 return dict(name=name, count=count, url=url)

のように routeを設定して、

http://localhost:8080/hello/dummy_name/dummy_count

にアクセスしてみると良いのではないでしょうか

dammy_name,dummy_countは適当な値です

投稿2017/07/20 09:48

magichan

総合スコア15898

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

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

hanpanai-tumi

2017/07/21 08:14

ご回答ありがとうございます。指摘して頂いた所を中心に見直した所、無事実現できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問