dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

Google App Engine

Firebaseのチュートリアルをやってみた(Google App Engineで)

Google Developers Summit Tokyo 2015 に参加してきました。 最後のセッションで Firebase というリアルタイム・バックエンドサービスが紹介されており、 面白そうだったのでチュートリアルだけやってみた。 (2015/04/23追記) 以下ではサンプルアプリのホ…

Google App Engineの開発サーバー(localhost)にスマートフォンでアクセスする方法

ちょいメモ。 ローカルで Google App Engine の開発をしていて、dev_appserver.py で起動した開発サーバーに iPhone などのスマートフォンでアクセスする方法。 こちらの記事が非常に参考になります。 Blogger 前提 Google App Engine / Python を利用 PC と…

[Google App Engine]AppStatsのタイムゾーンを変更する

Request History に表示されている時刻のこと。 そもそもどのタイムゾーンで表示しているの?とかどうやって変更するの?とか気になったので調べてみたら、公式ドキュメントに記載があった。 Appstats for Python 2 | App Engine standard environment for P…

[Google App Engine]静的ファイルをpythonで読み込む時の注意点

ちょっとつまづいた。 こんな感じで、python からファイルの読み込みを行いたい時がある。 # ---------------- views.py の一部 ---------------- from models import PostCard class MainView(View): template_name = 'app/index.html' def get(self, reque…

[Google App Engine] app.yamlについて

ここを読んでみた。 https://cloud.google.com/appengine/docs/python/config/appconfig とりあえず前半部分、handlers のところまで。 Required elements app.yaml には以下の項目を1つずつ記載する必要がある。 application アプリケーション名(任意) ve…

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う (4)

前回 書いたコード、しばらく経ってからアクセスすると AccessTokenRefreshError なるエラーが発生することがわかった。 ERROR 2015-03-13 15:12:12,692 base.py:210] Internal Server Error: /task_manager/ Traceback (most recent call last): File "/App…

[Google App Engine]NDBのIn-Context Cacheについて

In-Context Cache とは https://cloud.google.com/appengine/docs/python/ndb/cache#incontext 1 リクエスト内で有効なキャッシュ 速度は In-Context Cache < Memcache < Datastore の順 In-Context Cache が microseconds に対し、Memcache は milliseconds…

[GAE][django]djangoのクラスベース汎用ビュー用の@login_required

ユーザーがログインしていなかった時にログイン画面にリダイレクトしてくれる @login_required デコレータ。 SDK に標準で備わっているものは Django に適用できなかったので作った。 コード util.py は参考までにオリジナルの appengine/ext/webapp/util.py…

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う 記事一覧

長くなりそうなので、過去記事一覧をここにまとめ。

[GAE][django]django+pytest でImproperlyConfiguredエラー

GAE(python) + django で、フォームのテストをしていた時に発生した。 (テストには pytest を使っている) ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable DJANGO_…

[GAE][django] GAE+djangoで開発を始めるための自分流Scaffoldを作った

新しく Google App Engine のアプリを作ろうと思った時に 既存のアプリを一旦コピーして、必要なもの以外は削除して...という作業が面倒なので Scaffold (と呼んでいい?)的な初期ファイル群を作ってみた。 特徴 README にも書きましたが パッケージ管理に…

[GAE] 本番環境の Datastore Viewer でエンティティをID/key名で探す方法

ちょいメモ。 開発サーバーだとデータが大量すぎて Datastore Viewer では探せない状況でも 目的のエンティティの ID なり key名 がわかれば Interactive Console で取得できる。 デプロイした環境だと Interactive Console がなくてどうしたらいいんだろう…

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う (3)

前回の記事はこちら。 views.py を変更し、とりあえず Task 一覧を表示できるようになった。

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う (2)

前回 から引き続き。 とりあえず認証のリダイレクトが機能しつつ、 Credentials を NDB に保存できるところまで。

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う (1)

タイトルの通り。 Google App Engine で Tasks API を利用した簡単なアプリを作ろうとしたがOAuth2 の認証でハマってしまい、 現在も解決していないが調査記録をメモ。 最終的に解決したら別の記事として整理したい。

[GAE] Google App Engine の単体テストにpytestを使う(with zc.buildout)

タイトル通り、Google App Engine のユニットテストに pytest を使うため 以前勉強した zc.buildout でセットアップしてみた時のメモ。 GAE のライブラリを zc.buildout で管理する方法については以下の記事をご覧ください。

[GAE] Repeated Property について

ちょいメモ。 ndb の "Repeated Property" について、仕様として気になることをちょっと調べてまとめてみました。

Gmail Actions in the Inbox を試してみる (その1. Go-To Action)

Gmail の Actions in the Inbox機能を試しています。 日本語の記事がほぼ無いと言ってよいので、少しずつ Action を触ってはメモ書き程度に残していこうと思います。 はじめに(Actions in the Inboxとは) Actions in the Inbox とは、Gmail の件名の右はじに…

[GAE]zc.buildoutでGoogleAppEngineの外部ライブラリを管理する

前回の記事でpythonのライブラリ管理ツールであるzc.buildoutを一通り触ってみましたが、 今回はこのzc.buildoutを使ってGoogle App Engineの外部ライブラリを管理する仕組みを構成してみます。

[django]URLconfで指定した数値(integer)が文字列(unicode)になる

Google App Engine + Djangoという組み合わせでのほんとにちょっとした話。 Djangoのバージョンは1.5 です。

[GAE][django]テンプレートでエンティティのIDを取得する

ちょいメモ。 最初、テンプレートに{{ entity.id }}とかやってたんだけど よく考えるとGAEのエンティティのIDはKeyクラスから取得するんですよね。 NDB Key Class | App Engine standard environment for Python 2 | Google Cloud つまり、pythonのコード中…

[GAE]urlsafeなKey名から元のKey名を取得する

想定しているシチュエーションとしてはこんな感じ。 データストアのあるモデルのKey名には、特定の情報を連結した文字列をurlsafeでBASE64エンコードした文字列を使っている エンティティのKey名に使用しているurlsafeな文字列だけがわかっていて、その文字…

[django]アプリケーション名を取得する

テンプレートなどにアプリケーション名を直書きしたくないので 取得する方法がないか調べてみた話。

[GAE]dev_appserver.pyで--datastore_pathを指定するとエラー

が出ました。 ローカルで開発する時のデータファイルをわかりやすい位置に置いておこうと思って $ mkdir ~/gae_datastore $ dev_appserver.py --datastore_path=~/gae_datastore [GAEプロジェクト] を実行すると、次のようなエラーが。 INFO 2014-09-05 14:4…

Google App Engine Python Tutorialのメモ(5)

(追記)その他のメモ Google App Engine Python Tutorialのメモ(1) - dackdive's blog Google App Engine Python Tutorialのメモ(2) - dackdive's blog Google App Engine Python Tutorialのメモ(3) - dackdive's blog Google App Engine Python Tutorialの…

[GAE]特定のモデルの全エンティティを削除する方法

開発中にデータを一度クリアしたいけど、特定のモデル以外のエンティティは必要なので残しておきたいとき。 以下のコマンドをインタラクティブコンソール(http://localhost:8000/console)で実行すればよい。 from google.appengine.ext import ndb ndb.delet…

Google App Engine Python Tutorialのメモ(4)

第4回はChapter 7 Using Templatesです。 (追記)その他のメモ Google App Engine Python Tutorialのメモ(1) - dackdive's blog Google App Engine Python Tutorialのメモ(2) - dackdive's blog Google App Engine Python Tutorialのメモ(3) - dackdive's b…

Google App Engine Python Tutorialのメモ(3)

前々回、前回に続いて第3回。 (追記)その他のメモ Google App Engine Python Tutorialのメモ(1) - dackdive's blog Google App Engine Python Tutorialのメモ(2) - dackdive's blog Google App Engine Python Tutorialのメモ(4) - dackdive's blog Google …

Google App Engine Python Tutorialのメモ(2)

前回に続き、GAEのチュートリアルをやってみた自分用メモです。 今回は、Chapter 5 Handling Forms with webapp2から。 (追記)その他のメモ Google App Engine Python Tutorialのメモ(1) - dackdive's blog Google App Engine Python Tutorialのメモ(3) - …

Google App Engine Python Tutorialのメモ(1)

突然ですがGoogle App Engineの勉強をし始めました。 言語はpython 2.7です。 公式チュートリアルを一通りやるので、とりあえず自分用のメモを残しておきます。 Chapter1, 2は触りの部分なので、 Chapter 3 Explaining webapp2 Frameworkから。 (追記)その…