• 日本語
    • English (英語)
Avinton JapanAvinton JapanAvinton JapanAvinton Japan
  • サービス
    • Avinton Data Platform
    • エッジ AIカメラ
    • AIサービス開発
    • 画像認識PoC
  • 最新情報
  • アカデミー
  • 採用情報
    • Avintonで働く魅力
    • 求人
    • よくある質問
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • CSR(企業の社会的責任)
  • お問い合わせ

PostgreSQL – Python – Apache – Bootstrap

  • Python3.6 と OpenCV のインストール (Ubuntu18.04LTS)
  • ルーティング
  • 見た目を美しくしてみましょう
  • NAT
  • 三目並べ – 2.〇×を交互にゲーム盤に入るようにしよう
  • カート内のアイテム個数を変更
  • 三目並べ – 3.勝敗がつくようにしよう
  • EC2からS3へ自動でぽいぽいアップロードするスクリプトの作成
  • 三目並べ – 4.「スタート」「リセット」ボタンをつけよう
  • 三目並べ – 5.先攻後攻を決めて、コンピュータ対戦にしよう(前編)
  • カートの設置
  • Ruby on Rails を MySQLでセットアップ
  • レイアウト調整
  • 機械学習入門者向け Support Vector Machine (SVM) に触れてみる
  • AWSアカウントの作成と必ずやるべきセキュリティ対策
  • VLAN
  • テスト
  • 機械学習を用いた画像分類
  • Ruby on Railsによる簡単なウェブアプリケーション
  • 正規表現とパイプ
  • 機械学習エンジニアに必要なスキル
  • Ubuntuの設定
  • PostgreSQL Setup
  • REDIS
  • Amazon EC2 インスタンスの初期設定をしよう
  • Pythonの設定
  • GNS3のセットアップ
  • viエディタ
  • AWSのEC2インスタンスでWordPressブログを公開してみよう
  • Pythonでデータベースを操作する
  • Python2.7とOpenCVのインストール
  • ファイル操作コマンド
  • OpenCVのテストプログラム
  • グループとユーザー
  • Pythonで画像を分類するプログラムを作成する
  • AWS CLIをインストールしてコマンド操作しよう
  • Virtualisation and Container (仮想化とコンテナ) – Ansible, Docker and Kubernetes
  • Windows Server 2012 R2 Hyper-V
  • 困った時に使うコマンド
  • PacketTracerのセットアップ
  • 一般グループのユーザーとグループ
  • AWS Route 53を使って独自ドメインのWebページを表示させてみよう
  • プライバシーポリシー
  • VMware ESXi サーバー構築
  • 三目並べ – 6.先攻後攻を決めて、コンピュータ対戦にしよう(後編)
  • フロントエンド開発のための環境構築
  • フロントエンドのデモンストレーション
  • APIのデモンストレーション
  • CISCO 1800ルータセットアップ
  • ファイル検索コマンド
  • ESXi – Switchの追加とVLAN
  • 質問
  • 仮想化環境のディスク容量を拡張する
  • ユーザー権限とアクセス権
  • 三目並べ – 0.導入
  • テキスト処理
  • ESXi - VyOS
  • データベースへのデータロード
  • 機械学習入門者向け Naive Bayes(単純ベイズ)アルゴリズムに触れてみる
  • CCNA
  • ESXi – 小規模ネットワーク 構築
  • ファイル管理
  • 機械学習入門者向け ChainerRLでブロック崩しの学習
  • AWS CLIを使ってEC2のファイルをS3へアップロードしよう
  • CSV import & export – Node.js, mySQL – 1
  • 機械学習入門者向け ランダムフォレストによる Kaggle Titanic生存者予測
  • CSV import & export – Node.js, mySQL – 2
  • PCからルータ、スイッチへのSSH接続設定
  • 【Python入門】Python Numpy チュートリアル
  • SQL 便利な関数
  • PostgreSQLによるデータ分析
  • 機械学習入門者向け 分類と回帰の違いをプログラムを書いて学ぼう
  • NodeJSでWebアプリケーション開発 – React編
  • Pythonによるマルチスレッドプログラミング実践
  • Certbotを使ってSSL証明書を発行し、HTTP通信を暗号化しよう
  • DockerとApacheを使ってWebサーバーを構築しよう
  • NodeJSでWebアプリケーション開発 – React編
  • Ruby on Rails インストール
  • AmazonEC2とVPCでネットワークとサーバーを構築しよう
  • AWS入門者向け 初心者が最初に理解すべきEC2とVPCの基本的な用語解説
  • Linuxとは
  • Pandasによる構造化データ分析
  • カート機能作成
  • Ruby on Rails Academy
  • ショッピングアプリケーション作成
  • ダイナミックルーティング
  • PostgreSQL – Python – Apache – Bootstrap
  • 三目並べ – 1.ゲーム盤を作ろう
Home Academy PostgreSQL – Python – Apache – Bootstrap

PostgreSQL – Python – Apache – Bootstrap

1. Apacheのセットアップ

sudo apt-get install apache2

 

サーバー状態の確認

service apache2 status

 

ブラウザで確認

VM上で http://localhost に接続し、Apacheのテストページが表示されていることを確認してください。

 

2. PythonでPostgreSQLに問い合わせを送る

PostgreSQLによるデータ分析で使ったデータを今回も使います。
 

環境構築

# ホームディレクトリへ
cd ~

# 今回用のディレクトリを作成
mkdir swa

# Pythonファイルを作成
touch swa.py

# PostgreSQLに接続するモジュールをインストールします
sudo apt-get install python-psycopg2

# Flaskを使うためのモジュールをインストールします
sudo pip install setuptools

# Flask(Python向けウェブフレームワーク)をインストールします
sudo pip install Flask

# PostgreSQLにPythonからの要求を受け取る設定をします。
vi /etc/postgresql/9.5/main/pg_hba.conf

# 赤枠内の設定を書き換えてください。

Peer to Password

# PostgreSQLサーバーを再起動します
sudo service postgresql stop
sudo service postgresql start

環境設定は以上です。

Challenge!

ウェブアプリケーションのサンプル

複数の技術を組み合わせて簡単なウェブアプリケーションのサンプルを作る演習をします。
具体的には、PythonからPostgreSQLデータベースに問い合わせし、その内容をApacheサーバーを経由してBootstrapウェブページ上に表示します。
表示されたウェブページではjapan_cities内の検索ができるように、検索機能を追加します。
 
それぞれの関係性を図に表すと以下のようになります。
 
Relationship

 

ヒント:

 

SQL in JSON

下記のSQLコードを用いて、データベースのデータをJSON形式で取得できます。

select
    jsonb_pretty(to_jsonb(array_agg(json_build_object(
    'prefecture', prefecture,
    'city', city,
    'ward', ward,
    'population', population,
    'city_ward', city_ward))))
from
    japan_cities
    ;

 

Bootstrap Table で手軽にテーブルを作成できます。

 

FlaskはこのようなPythonコードで動作します。

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

"""
Avinton python endpoint
swa.py
"""

import sys
import json
import psycopg2
import psycopg2.extensions
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
psycopg2.extensions.register_type(psycopg2.extensions.UNICODEARRAY)

from flask import Flask  # Import class Flask from module flask
from flask_cors import CORS, cross_origin  #Import flask-cors to accept access to the data
app = Flask(__name__)    # Construct an instance of Flask class
CORS(app)                # apply CORS

@app.route('/')   # Register index() as route handler for root URL '/'
def index():
   """Route handler (or View Function) for root URL '/'"""
   return 'Hello, you have reached the default route for the python endpoint'

@app.route('/cities.json')
def cities():
    con = None
    js_string = ''

    try:
        con = psycopg2.connect(database='avinton', user='postgres')
        cur = con.cursor()
        cur.execute("""<上の SQL in JSON のSQLコード>""")

        js_string = str(cur.fetchone()[0])
        print js_string

    except psycopg2.DatabaseError, e:
        print 'DB Error %s' % e    
        sys.exit(1)

    finally:
        if con:
        con.close()

    return js_string

@app.route('/test')
def test():
    return 'test'

if __name__ == '__main__':  # Script executed directly?
   app.run()  # Launch built-in web server and run this Flask webapp

 

HTMLファイルをApache2のディレクトリ内に配置しましょう。

(http://localhostで表示されるのはこのページです。)

<DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Data Table in Bootstrap</title>

          ~~~import Bootstrap source~~~
               (css,javascript)
  </head>

  <body>
          ~~~create table with the data~~~
  </body>
</html>

index.html としてApache2のディレクトリに保存します。
 
最終的には以下のように、データベースのデータをフロントエンドで表示できます。
 
bstrapoutput

前へ

採用情報

採用情報

Search

タグ

2017 2018 AI Avinton Avinton Academy Avinton Japan Avintonジャパン DX HTML Linux Python Ruby Webエンジニア アビントン アビントンジャパン アヴィントン アヴィントンジャパン イベント インフラエンジニア エンジニア グローバル サーバーエンジニア データサイエンス データサイエンティスト データベース データ解析 ニュービジネス研究会 ネットワークエンジニア ビックデータ ベンチャー 勉強会 就活 就職活動 成長 技術インターン 採用 新規事業 横浜 機械学習 機械学習エンジニア 派遣 第二新卒 経営者交流会 英語 起業
© 2020 Avinton | All Rights Reserved | プライバシーポリシー
  • サービス
    • Avinton Data Platform
    • エッジ AIカメラ
    • AIサービス開発
    • 画像認識PoC
  • 最新情報
  • アカデミー
  • 採用情報
    • Avintonで働く魅力
    • 求人
    • よくある質問
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • CSR(企業の社会的責任)
  • お問い合わせ
  • 日本語
    • English (英語)
Avinton Japan