ラベル Oracle application express の投稿を表示しています。 すべての投稿を表示
ラベル Oracle application express の投稿を表示しています。 すべての投稿を表示

2018/02/11

GCP: Google App Engine上にPython(Flask)アプリを立ち上げる手順



  • Goal
    開発環境も何も無い状態から、GAE(Google App Engine)上にFlaskアプリ(Hello World)を30分以内に立ち上げる。
    GAEは、Standard Environmentなので、Pythonは、2.7
  • How
    1. GCP上に新プロジェクト作成(xxxxx-test−0001) ⇒ 手順割愛
    2. GCP上で、GAEを有効にする。 ⇒ 手順割愛
      初めてのアプリ作成で、Pythonを選ぶ。
      チュートリアルはやらなくて良いので、途中で抜ける。
      1プロジェクトで、1GAEアプリしか持てない。
    3. GCP上に新VMインスタンス(Ubuntu16.4)作成(dev001) ⇒ 手順割愛
      TYPEはMicro(無料マシン)でOK。
      別にローカルマシンがあればそれでもOK。
    4. VM(dev001)の設定 ー 開発環境構築
        4-1. 初期設定 + Pyenv + GAEのSDKの導入
          以下のファイルを実行
       
         ~$ . UbuntuSetupForGAE.sh

        4-2. Localに開発用フォルダの作成とPyenvのセットアップ      
           

    5. Deploy
      localでのテスト。main.pyがあるディレクトリで以下を実行
          $ 
    dev_appserver.py .
     
       Deploy。 main.pyがあるディレクトリで以下を実行する
          $ appcfg.py update --noauth_local_webserver -A "project id" -V "version" .

    6. 確認する。以下のURLにアクセスする。
      
    https://”projectid”.appspot.com
         



  • Notes
    これを使って、LineのBotなどマイクロサービスを立ち上げれる
    main.pyの編集と必要なlibのインストールが必要
  • Thanks!!

  • 2016/10/31

    インタラクティブレポートの条件付き書式(背景色を変える) その2 - APEX

    • Goal
      以前の記事だと、リンク付きのセルの場合色が変わらないことが発覚!!
      なのでリンク付きのセルの場合でも変更できる方法がこれ。
      インタラクティブレポートにおいて、セルの背景色を条件に応じて変更する。

      (As is) リンク付きのセルは以下のようにセルの色が変わらない。。。


    • How
      1. ソースを見れば、タグTDに、Style属性がセットされていない。なので、動的アクションでの、JAVASCRIPTが原因…


      2. jQueryでの親属性の取得方法を変更する。動的アクションのJavascriptをparent() から、closest()へ変更する。


      3. インタラクティブレポートの列属性の設定を変更する(リンク付きの列のみ)

      以下が、結果。画像の背景が白なのは、別の問題…。

    2016/10/28

    javascriptで他のページにリンクする - 動的アクション - APEX

    • Goal
      ボタン押下時に、WEBDAVのフォルダ内のPDFファイルを立ち上げる
      その時に、テキストボックス(SELECTリスト)の値を引数として使う

      (例) Openボタンをクリックしたら、テキストボックスの "文字列.pdf" を開く
         これは、12345.pdfを開いたイメージ


    • How
      ボタンにダイナミックアクションを設定し、Javascriptで開く
      ダイナミックアクションのJavascriptの例は以下の通り


    2016/09/25

    1.他のテーブルとのマッチングのやりかた(1列文字列から1行テーブルへ変換)

    目次に戻る
    APEXでのCHECKBOX(チェックボックス)の取扱

    1.他のテーブル(名称マスター)とのマッチングのやりかた
     (1列文字列から1行テーブルへ変換、その後マッチングしてまた1行文字列に戻す)


     Goal ‐ 以下のように、チェックボックスの返り値とマスターをマッチングをする
     #SQLサンプル
      COLUMN FOODS を FUNCTION T_GET_NAME に渡して、名称リストを取得

     #FUNCTION T_GET_NAME のSQL

     
     #解説 - コロン(:)区切りのテキストを1行テーブルへ変換するSQL






    2016/09/24

    CHECKBOX(チェックボックス)のハンドリング - 目次 - APEX


    APEX上でのCHECKBOX(チェックボックス)のハンドリング方法


    Table of contents
     
    1.他のテーブルとのマッチングのやりかた

      (1列文字列から1行テーブルへ変換)
     2.検索する/フィルターをかける


    Background

     APEXでチェックボックスを使う、コロン(:)区切りの文字列で値が帰ってくる。
     それをどう扱うのか?というメモ...

     (例)




    2016/09/23

    インタラクティブレポートのセルをクリック時にポップアップを立ち上げる - APEX

    • Goal
      インタラクティブレポートにおいて、セルのクリック時にポップアップ画面を立ち上げる。

      (例) Name をクリックしたら詳細をポップアップで表示する。




    • How
      1. インタラクティブレポート → レポート属性 → 列属性 → 列リンク

        ターゲット = URL
        URL に Javascript を貼り付ける
        &APP_ID.に違うAPP_ID を指定して飛ばす事もできる





      2. (追記)IEだと、POPUP表示時に、元の画面の情報が消えるエラーが発生!
        「void(0);」を追記すると解消する



    2016/09/21

    リージョンタイトルの書式設定 - APEX

    • Goal
      リージョンのタイトルの書式を変更する。文字を大きくしたり、色を変更する。

      (To be 例) USER_ID を追加し、文字を大きくして、太字+色を赤色に変更した例
       


    • As is

      変更前はこんな感じ



    • How
      1. リージョン定義 → タイトル に HTMLを埋め込む。変数も追加できる。

      サンプル


      &APP_USER. はログインユーザーIDを意味する変数


       

    2016/08/12

    インタラクティブレポートの条件付き書式(背景色を変える) - APEX

    • Goal
      インタラクティブレポートにおいて、セルの背景色を条件に応じて変更する。

      (To be 例) セルの書式を動的に以下の条件で設定する。
        Fare < 30                    緑色
        30 <= FARE < 50      黄色
        50 <= FARE < 70      ピンク色
        70 <= FARE                 赤色+白抜き文字+太字
       


    • As is

      変更前はこんな感じ



    • How
      1. セルの書式を格納するダミーカラムを、インタラクティブレポート内のSOURCEで作成する。レポート属性の列属性は、"非表示"とする。
      今回は、"FARE_COLOR"というカラムを追加。





      2. カラム"FARE"の書式を設定する。
      列属性: FARE > 列の書式 HTML式に以下をセットする。



      3. 動的アクションで、Javascriptを実行。




    • Reference
      #全般
      TBD - APEX and other things

      #データセット
      Titanic: Machine Learning From Disaster

      #アイコン
      フリーアイコン

    2016/06/14

    インターネットからの開発者サイトへのアクセスを禁止する - APEX

    • 状況
      インターネットからの開発者サイトへのアクセス時、ログイン画面が表示される。そのアクセスに対して、403エラーを返す。
      また、イントラ向けアプリとインターネット向けアプリが混在している場合、インターネットからのイントラ向けアプリへのアクセスに対して、403エラーを返す。

      以下の画面をインターネットから表示させない。
    • Solution
      mod_rewrite でコントロールする。

      (例) - APEX 4.2.x + OHS を想定
      開発者向け画面(アプリケーション番号は、四千番台:4xxx)と1で始まるアプリケーション番号(1xxx)へのインターネットからのアクセスを403リダイレクトする。

      1. HTTP 接続の場合 - httpd.conf ファイルに以下を追記する

      RewriteEngine on
      RewriteCond %{QUERY_STRING} ^p=1 [OR]
      RewriteCond %{QUERY_STRING} ^p=4
      RewriteRule ^(.*) - [F]


      2. HTTPS接続の場合 - ssl.conf ファイルのvirtualhost内に上記を追記する。
         (注) mod_osslが利用できるようになっていることを確認する。

      ssl.conf のサンプル

      変更後 のイメージ

    2016/06/09

    カラムの幅を固定する - インタラクティブレポート - APEX

    • Goal  (APEX 5.x 向け、4.xは別の方法)
      インタラクティブレポートにおいて、カラムの幅を固定する。
      改行して2行表示にならないようにする。

    • How
      1. インタラクティブリージョンに、静的IDを設定する


      2. 幅を変更したいカラムに、静的IDを設定する


      3. ページのCSS インラインに以下を追加する

    • To be
      以下のように拡がる


    インタラクティブレポートのセルに画像/アイコンを入れる(リンク 無、動的アクション 無) - APEX

    • Goal
      インタラクティブレポートにおいて、セルの中身を画像に変更する。
      リンク 無し、動的アクション 無しで、単に画像が表示されるだけ。
      フィルターは文字列で検索ができる。
      (To be 例) 性別をアイコンで表示する。
          Icon by http://www.fatcow.com/free-icons

      フィルターはこんな感じ

    • As is

      変更前はこんな感じ

    • How
      0. 共有コンポーネント > 静的アプリケーションファイル に、アイコンをUPLOADする。
       その時に、ファイル名を項目の名前と一致させておく。
       この場合は、"male" と "female"。

      1. リージョン: インタラクティブレポート で 対象の列を選び、
       指定 > タイプ: リンク
       リンク > ターゲット: タイプ = "URL"
                                              URL = "#"
       リンクテキストを以下にする

       
    • Reference
      #全般
      Jari's APEX blog

      #データセット
      Titanic: Machine Learning From Disaster

      #アイコン
      フリーアイコン

    2016/05/10

    7.初回ログイン時、パスワード変更画面へリダイレクト :APEX ID/PASSWORD認証機能 - カスタム編 -

    • Steps
      7. 初回ログイン時、パスワード変更画面へリダイレクト
        -Home画面のロード時にパスワード変更画面へリダイレクトさせる
        -初回ログインかどうかは、PWD_EXPIREで判定

       #HOME画面にProcessを追加



       #Source :OWA_UTILのリダイレクトを使う


       
       



    2016/05/06

    6.パスワード変更画面の作成 その3 :APEX ID/PASSWORD認証機能 - カスタム編 -

    • Steps
      3.ボタン押下時のプロセスの追加

       #ボタンには、”ページの送信”の設定のみ

       #データベースアクションはなし

       
       #ページ送信後のプロセスで、FUNCTION CHGPWD を呼び出す
             (3.PASSWORDを変更するFUNCTION で作成)



    2016/05/04

    6.パスワード変更画面の作成 その2 :APEX ID/PASSWORD認証機能 - カスタム編 -

    • Steps
      2.パスワードの検証プロセスの追加

       #USER_IDが、NULLではない
       #新旧パスワードが一緒ではない
       #新パスワードに空白がない
       #パスワードは8文字以上 :SQL式
       #大文字を1文字以上含む :SQL式
       #小文字を1文字以上含む :SQL式
       #新パスワードと確認用パスワードが一致している
       #USERNAMEが、ログインUSERと一致している :SQL式





      3.ボタン押下時のプロセスの追加 へ続く

    2016/04/28

    6.パスワード変更画面の作成 その1 :APEX ID/PASSWORD認証機能 - カスタム編 -

    • Steps
      1.ページの作成 >> 空白のページを作成
       静的コンテンツのリージョンを作成し、ボタン(Change/Cancel)と
       アイテムを作成する
       Note
       #テンプレート: LOGINを選択
       #リージョンのテンプレート: LOGINを選択
       #旧Pass/新Pass/確認新Pass表示形式: パスワードを選択



      2.パスワードの検証プロセスの追加 へ続く

    2016/04/04

    5.認証スキームの作成 :APEX ID/PASSWORD認証機能 - カスタム編 -

    • Steps
      1.共有コンポーネント > 認証スキーム から 作成



      2.スキームタイプ=カスタム,
       設定 > 認証ファンクション名=AUTH
       (2.ID/PASSWORDをチェックするFUNCTION で作成)



      3.カレントと表示されていることを確認

    2016/03/22

    APP_USERを意図的にセットする


    2016/03/19

    4.PASSWORDを初期化するPROCEDURE :APEX ID/PASSWORD認証機能 - カスタム編 -

    • Goal
      パスワードを初期化し、新しいパスワードをEmailで送信するプロシージャ
      新規ユーザー登録後とパスワード忘れ時に呼び出すことを想定している。
      また、新パスワードでの初回ログイン時にパスワード変更を強制するために、USERMASTERテーブルにEXPIREフラグを立てる。
      EMAILはAPEX_MAILを使って送信する。
    • Source

    0.USERMASTER テーブルを作る :APEX ID/PASSWORD認証機能 - カスタム編 -

    • Goal
      USERMASTERテーブルのサンプル
      パスワードの初期化機能と初回ログイン時にパスワード変更の強制を
      想定しているため、EXPIREフラグを追加している。
    • Source

    2016/03/17

    3.PASSWORDを変更するFUNCTION :APEX ID/PASSWORD認証機能 - カスタム編 -

    • Goal
      パスワードを変更するFUNCTION
      パスワードの条件(8文字以上、英数字 etc)はAPEX上で実装するので、このファンクションではチェックしていない。パスワード変更画面で、パスワード変更ボタンを押したときに呼び出す。パスワードチェック時及び新パスワードのハッシュ化時は、1.PASSWORDをハッシュ化するFUNCTIONを呼び出す。
    • Source