16
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pythonを使ってブラウザでグラフを表示したい!

Last updated at Posted at 2015-11-12

はじめに

とりあえずなんかボタン作って python 経由でデータが取得したなぁって思って
ガワは割となんでもいいんだけど...。目標点としては、データを取得して動的にグラフの作成をしたい。adoのRecordset型をボンと渡せば表を作ってくれるのがあるといいなぁ。HTMLの「テーブル」はちょっと苦手感あるぜ。デザイン的に...w

#参考ページ
Python3のインストール

開始

今回は「basic_js_graph」というフォルダを作って練習する。
chart.js は(かつては js をダウンロードして html がそこをのぞくというカタチだったが)いまは CDN という機能を利用し、ライブラリに直リンするほうがいい。

STEP1: index.htmlを作る

・index.html を新規作成
・まだ空っぽのhtmlファイル上で ! を押して tab を押すと、VSCodeがhtmlテンプレートを作ってくれる。すご!
・赤い枠で囲んだ範囲が今回編集した場所( script のタグだけは手打ちしたけどその他は getting-started からコピペした)
image.png

ソース

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

    <!-- chart.js -->
    <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>

</head>
<body>

    <!-- chart.js -->
    <canvas id="myChart"></canvas>

    <script>

        var ctx = document.getElementById('myChart').getContext('2d');
        var chart = new Chart(ctx, {
            // The type of chart we want to create
            type: 'line',

            // The data for our dataset
            data: {
                labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
                datasets: [{
                    label: 'My First dataset',
                    backgroundColor: 'rgb(255, 99, 132)',
                    borderColor: 'rgb(255, 99, 132)',
                    data: [0, 10, 5, 2, 20, 30, 45]
                }]
            },

            // Configuration options go here
            options: {}
        });

    </script>

</body>
</html>

STEP2: Webサーバーを起動する

Pythonは簡易Webサーバー機能を持っている。
Webサーバーを一言で説明するのは難しいが、要はブラウザに「http://localhost:8000/」と打ち込んだらさっき作ったグラフが表示されるようにしようぜってこと。

・simpleserver-startup.py を新規作成
・赤い枠で囲んだ範囲が今回編集した場所
・VSCodeのターミナルで「basic_js_graph」に移動して「python simpleserver-startup.py」と打ち込んで実行
・サーバーが起動し、待受状態になる
image.png

ソース

import http.server as server
server.test(HandlerClass=server.CGIHTTPRequestHandler)

STEP3: ブラウザで確認する

これはまだ、サンプルコピペでデータが表現されているに過ぎない。しかし表現されたのは大きいね:relaxed:
これで、「ブラウザアドレスバーからのHTTPリクエストに対してHTMLファイルを返す」とこまで行ったようだ。
image.png

よし!いったん「Ctrl + C」でサーバを終了。
サーバを終了したあとに F5 で更新するとこの通り。
image.png

#つぎは?
pythonからdbにアクセスする(A)、[ブラウザアドレスバーからのHTTPリクエストに対してHTMLファイルを返す(B)まで行ったので、その間の部分を作って「ブラウザアドレスバーからのHTTPリクエストに対して動的なグラフHTMLファイルを返す」をつくる

16
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?