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

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

ただいまの
回答率

87.95%

HTML5でPythonを利用してWebアプリを動作させたいのですが、.pyファイルのソースが表示されてうまく動作に至りません

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 5,088

score 14

前提・実現したいこと

WebでPythonをjavascriptの代わりに動かせるbrythonというものを使おうを考えています
今現在サンプルとして公開されていたおみくじttp://blog.livedoor.jp/hamu_nbr/archives/43114283.html
を自分のWebサーバー(Pythonで立てたCGIHTTPServer)で動作するようにしたいです

発生している問題・エラーメッセージ

omikuji/index.htmlのページから
おみくじを引く のリンクを踏むとなぜかomikuji.pyのソースが見える
http://127.0.0.1:8000/workspace/Brython3.2.6_site_mirror-20160417-152216/omikuji/omikuji.py
に移動してしまいます
おみくじが一瞬だけ動作してomikuji.pyのソースファイルを表示しているページに遷移してしまうのです

---------------------Python側----------------------
####!/usr/bin/env python
# -*- coding: utf-8 -*-

__author__ = "Hamukichi (Nombiri)"
__version__ = "0.1.0"
__date__ = "2015-03-09"
__licence__ = "MIT License"

import random
import browser


KUJI = {"大吉": 8, "中吉": 46, "小吉": 15, "吉": 15, "末吉": 8, "凶": 8}

KUJILIST = []
for k, v in KUJI.items():
    KUJILIST += [k] * v


def omikuji(ev):

    # Get the result
    result = random.choice(KUJILIST)

    # Output
    res_elt = browser.document["result"]
    res_elt.text = result


sub_elt = browser.document["submit_button"]
sub_elt.bind("click", omikuji)

---------------------html側----------------------
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>おみくじ</title>
        <meta charset="utf-8">
        <meta name="description" content="ごく単純なおみくじ。Brythonのテストとして。">
        <meta name="author" content="はむ吉(のんびり)">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="style.css">
        <!--[if lt IE 9]>
        <script src="//cdn.jsdelivr.net/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
        <!-- ☆Brython関連ファイルをサーバにアップロードした場合には、
        brython.jsの位置を指定する -->
        <script src="./src/brython.js"></script>
        <!-- ☆Brython関連ファイルをサーバにアップロードしない場合には、
        以下の記述を有効にする -->
        <!--<script src="http://brython.info/src/brython_dist.js"></script>-->
    </head>
    <body onload="brython()">
        <script type="text/python" src="omikuji.py"></script>
        <!-- Place your content here -->
        <!-- SCRIPTS -->
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <div class="main_area">
            <h1>簡単おみくじ</h1>
            <a href="#" id="submit_button">おみくじを引く</a>
            <div id="result"></div>
            <h2>説明</h2>
            <p>「おみくじを引く」をクリックしてください。するとおみくじの結果が表示されます。</p>
            <h2>注意点</h2>
            <ul>
                <li>JavaScriptを有効にしてください。</li>
                <li>ブラウザによってはうまく動作しないおそれがあります。</li>
                <li>このツールにより得られた結果は、自己責任で利用してください。</li>
            </ul>
        </div>
    </body>
</html>

Python,HTML

```

試したこと

ttp://blog.livedoor.jp/hamu_nbr/archives/43114283.html
ブログ様に書かれていること

補足情報(言語/FW/ツール等のバージョンなど)

OS:windows10
ダウンロードしたbrythonファイル:Brython3.2.6_site_mirror-20160417-152216.zip
ブラウザ:Google Chrome
使用しているPythonのバージョン:3.4.4

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

実際にやってみました。
結論から先に申し上げますと、うまく動いているようです。
ただ、参照先のサイトについてはずいぶん古いもののようなので、やり方はいろいろ違うようですね。
以下手順のみ。

(1)Brython3.2.6_site_mirror-20160417-152216.zipをダウンロードして展開する。

(2)展開フォルダの中にあるwwwフォルダ内にomikujiというフォルダを作る。

(3)omikujiフォルダ内に参照サイトで紹介されている以下の三点を配置する。
・index.html
・omikuji.py
・style.css

(4)index.htmlのbrython.jsのurlを"../src/brython.js"に変更する。

(5)コマンドプロンプトでルートディレクトリ(server.pyがあるところ)を開いて、server.pyを実行する。

(6)http://localhost:8000/omikujiにアクセスする。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/29 13:26 編集

    見事解決しました。https://teratail.com/Questions/updateBestAnswer/36324/57777/1
    1)あまりに自分が無知すぎてまずcd (指定フォルダまでのパス)でルートディレクトリに移動する方法を知らずに関係のない場所で別のcgihttpserverを立てていました。
    2)wwwのフォルダの中に3点のファイルを直接入れていてファイルパスを間違えていました
    ありがとうございます
    ものすごく助かりました感謝しています

    キャンセル

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

  • ただいまの回答率 87.95%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • JavaScriptに関する質問
  • HTML5でPythonを利用してWebアプリを動作させたいのですが、.pyファイルのソースが表示されてうまく動作に至りません