2009-01-01から1年間の記事一覧

Mac版 SDK on Python の dev_appengine.py の場所

GAE

Mac版のSDKをダウンロードすると、その中身は、GoogleAppEngineLauncher.app というファイルが1つしかなく、開発サーバの本体である dev_appserver.py がどこに存在しているのか、ずっとわからないままだったのだが、ようやっとその場所を発見。GoogleAppEn…

ソート順の制御

データストアに日付をキーにして格納されているデータをSELECTして、それを 日付の降順に一覧表示(TABLEタグに吐き出す) 日付の昇順にチャート表示(XMLデータに吐き出す) という2つの処理を同一ページ内でやりたい。最初は、日付の降順でのSELECTと、日付…

取得した要素(タグ)の属性にアクセスする

こんな感じのHTMLがあったとしよう。 hoge.html <html> <head> ・・・ </head> <body> 選択してください。 <select id='hoge'> <option value="#" selected>全て</option> <option value="001">区分1</option> <option value="002">区分2</option> <option value="003">区分3</option> </select> <body> </html>このHTMLから、optionタグに入っているコードと名称を取ってきたい。 名称は、タグの中…

XMLを吐き出す

GAE

GAEのデータストアに保存したデータを取得し、FusionChart(Flashベースのグラフ出力ライブラリ)でグラフ表示するというプログラムを作っている。 FusionChartは、グラフにプロットするデータを、以下のような形式のXMLで渡してやる必要がある。 XMLの一例…

おさらい−新規プロジェクト追加から公開まで−

当初、自分は、新規プロジェクト作成、コーディング、テスト(実行)まですべてAptana上で行っていたのだが、GAEの本番環境へのデプロイのことを考えると、Google App Engine Launcher を使っておかないと何かと不便だということがわかってきた。 ここであら…

GAEでmatplotlib使いたかったけど

どうも使えないようです。 C拡張モジュールが使えないためではないかと想像しているのだけど。import matplotlib.xxxx とやると、matplotlib からnumpy を使っていて、その中で multiarray を使おうとしているところで No module named multiarray となって…

ログ出力方法

GAE

java等のloggingと同じ使い方ができます。 import logging from google.appengine.ext import webapp class MainPage(webapp.RequestHandler): def get(self): logging.debug("testtest") #ここでログを出力 application = webapp.WSGIApplication( [('/',Ma…

os.path._getfullpathname()

macで作業していたら、次のコードがエラーになった。 class MainPage(webapp.RequestHandler): def get(self): #テンプレートページ(index.html)にデータを流し込みつつ表示する page_contents = { 'dateFrom': '2009/10/29', 'dateTo': '2009/10/29' } path…

外部javascriptファイルの取り込み

GAE

自作のjavascriptを、独立した.jsファイルにして、それを取り込む場合は、app.yamlにその事を書いておかないと、jsファイルがロードできない。app.yaml抜粋(アプリケーションルート/scripts というフォルダの下にjsファイルを置くという想定) handlers: - …

画面ごとにpyファイルを分けるときの注意点

GAE

GAEのドキュメントの「スタートガイド」に出てくる、おなじみのミニマムコード。 from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app class MainPage(webapp.RequestHandler): def get(self): self.respon…

外部モジュールが読み込めない件(その4)少し理解してきたかも

GAE

今日から本格的に自宅のMacで作業しはじめたのだが、上記の手順で作ったプロジェクトのmain.pyに、軽い気持ちでimport BeautifulSoup と書いて実行させたら、またぞろエラーになったので、GAEのドキュメントを読んでいたら、その件についてちゃんと書いてあ…

Macの場合

GAE

Mac OS Xにて、GAEの新規プロジェクトを作る方法は、Windowsと少し違っていたのでメモ。(Windowsでの自分のやり方が違うのかもだけど) GoogleAppEngineLauncher.app を起動する Fileメニューから New Application を選択 任意のアプリケーション名を入力 A…

スクレイピング時のパースエラーについて

今回スクレイピングしたいページは複数あるのだが、それらをBeautifulSoupに食わせてみたところ、いくつかのページでパースエラーとなってしまった。中身を見てみると、対象ページに埋め込まれたjavascriptがこんなかんじになっているのが原因だった。 <script type="text/javascript"> <!--</script>…

外部モジュールが読み込めない(その3)

前回、あまりにも安直過ぎる方法で逃げたので、もう少しマシな状態にしてみる。 自分の場合、新しいプロジェクトを作るときは、Aptanaの「新規⇒プロジェクト追加」からやっているのだが、そうすると、プロジェクトの直下にsrcというフォルダが作られるので、…

外部モジュールが読み込めない(その2)

この日に行った設定のまま、数日動かさずにいたら、またimportできなくなっていた。何も変えていないつもりだったのだが。 なんでだ。 コマンドプロンプトでPython.exeを動かしてみる。 C:\Python.exe >>>import BeautifulSoup 特にエラーにならない・・・or…

グラフに挑戦(2) ローソク足グラフ

同じように、今度はローソク足グラフを出力。 渡すデータの形は、(time, open, close, high, low, ...) という並びのリスト。 # coding: utf-8 ''' 簡単なグラフ作成テスト ''' import datetime import pylab import matplotlib.dates import matplotlib.fin…

グラフに挑戦(1) 線グラフ

グラフ描画に挑戦してみる。使うのはmatplotlib。matplotlib本体は、上記リンクからダウンロードして入手。 さらに、numpy も必要なので、こちらから入手。まずは、普通のPythonプロジェクトのサンプル。必要最低限のコード。 # coding: utf-8 ''' 単純な線…

外部モジュールが読み込めない

BeautifulSoupを使うために、BeautifulSoup.pyを、Pythonインストールフォルダ配下のLib/site-packagesの下に配置したのだが、環境変数PYTHONPATHに、site-packagesが含まれているにもかかわらず、importしようとすると、見つからないというエラーになってし…

文字列⇒日付変換

文字列を日付型に変換する方法。 >>> #coding: utf-8 ... >>> import datetime >>> import time >>> dd = '2009年10月21日' >>> st = time.strptime(dd, '%Y年%m月%d日') >>> dt = datetime.date(st.tm_year, st.tm_mon, st.tm_mday) >>> print dt 2009-10-2…

文字列⇒数値変換

文字列⇒数値変換は、ビルトイン関数のint()、float()でできるとのこと。 しかし、カンマ区切り文字列だと変換してくれない。 >>>str = '123,456.12' >>>fl = float(str) Traceback (most recent call last): File "", line 1, in ValueError: invalid litera…

データストアのクリア方法(DROP TABLE的な)

GAE

GAEで、データストアを一旦定義して実行させて、その後、プロパティのデータ型を変更すると、実行時に「型が違うのでputできないよ」的なエラーとなってしまう。 これは、GAEエンジン(dev_appserver.py)の再起動や、マシン自体の再起動でも解消しない。(…

文字コード

ソースコードに日本語でコメントを書いたら、コンパイルエラーになった。 ソースコードの冒頭に # coding: utf-8 の1文を書いたがダメ。 こちらの記事で、上記の1文が、ソースコードの先頭もしくは2行目にないと認識してくれないことがわかった。 ソース…

Macの場合

Mac OS X には、最初からPythonがインストールされているのだが、Aptanaの環境設定で、Pythonインタープリターの設定をする際に、python.exeの場所がわからず悩んだので、メモ。 答え: Machintosh HD/システム/ライブラリ/Framework/Python.framework/Versi…

Google App Engine を試す

GAE

Google App Engine(GAE) を試してみる。JavaでなくPythonでやってみることにした。 Python本体を入れる。 http://www.python.jp/Zope/download/pythoncore GAEの対応バージョンは2.5なので、2.5系列の一番新しいのを入れる。 実は最初それに気づかなくて、3.…

インストール再び

ぼちぼちと再開。2年経っているので、もう一度手順をまとめます。 Ruby Rails なんらかのデータベース(MySQL) なんらかのWebサーバ(Apache) IDE(開発ツール) 1〜4は、前回同様、InstantRailsで入れる。 http://rubyforge.org/frs/?group_id=904 から ダ…