dotcloudでサクっとpython/flask/mongodbデプロイ

久しぶりに楽しそうなのがあったので更新です。
dotcloudというherokuの色々な言語版みたいなもんです。DBまで色々使えます。
private beta中みたいです。登録しとけばそのうちメールくると思います。

DotCloud

試しにpython、flaskで動かしてみました。

[bash]
mkvirtualenv –python=/opt/local/bin/python2.7 py27dev
pip install dotcloud
dotcloud
# (API Key入力)
dotcloud create plansettest
dotcloud deploy -t python plansettest.www

# flaskでお試し作成
mkdir plansettest
cd plansettest
pip install flask
vi wsgi.py
pip freeze > requirements.txt

dotcloud push plansettest.www .
[/bash]

wsgi.py
[python]
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
return "Hello World!"

if __name__ == "__main__":
app.run()

application = app
[/python]

これで http://www.plansettest.dotcloud.com/ デプロイ完了。動いてくれます。
らくちんー!

ついでにmongodbも。

[bash]
dotcloud deploy -t mongodb plansettest.mongo
dotcloud info plansettest.mongo
# config: mongodb_password: のパスワードをコピる。
# あと、サーバー名とポートもあるのでメモっとく。mongodb://root:なんちゃら〜の方ね。
dotcloud run plansettest.mongo mongo
# 3回くらい失敗?した。シェルになるまでがんばる。
> use test
> db.getSisterDB("admin").auth("root", "コピったパスワード");
> db.message.save({"message":"uho"});
> db.message.find()
> db.addUser("username","password");
> exit

pip install pymongo
pip freeze > requirements.txt
vi wsgi.py
[/bash]

wsgi.py
[python]
from flask import Flask, g, abort, redirect, url_for
app = Flask(__name__)

from pymongo import Connection

def connect_db():
try:
connection = Connection("mongo.plansettest.dotcloud.com", 6477)
return connection["test"]
except:
return None

@app.before_request
def before_request():
g.db = connect_db() or abort(500)
g.db.authenticate("username", "password")

@app.route("/")
def hello():
messages = ""
for item in g.db.message.find(limit=10):
messages += item["message"] + "n"
return "Hello World!" + "n" + messages

@app.route("/say/<message>")
def say(message=""):
g.db.message.save({"message": message})
return redirect(url_for("hello"))

if __name__ == "__main__":
app.run()

application = app

[/python]

これでmongodbを使って簡単にデプロイー!

instagramタグ検索とjquery-mobile

(´ぅω・`)

instagramのタグ検索とjquery-mobileで作ってみました。

これ
pcからjquery-mobileのレイアウト見るときはこっち
そ〜す

110415-0001.jpg

110415-0002.jpg

とりあえず、忘れないうちにってことで。
・pythonでflaskを使ってみた。
・nginx、gunicornを利用して動かしてみた。
 よくわからないけど、meinheldも使ってみた。
・jquery-mobileを使ってiphoneから見れるように。

気になること

・pythonでアプリを作って実稼働させるときってどうすりゃいいんだろ。
 nginx+gunicornで動かしてみたけど、これでよいのかなぁ。
・必要なライブラリなんかは、開発でvirtualenv使って、pip freezeとかで揃えるのかな。
・jquery-mobileは適用するとさっそくおしゃれになってくれるけど、iphoneのブラウザでページ遷移するときに、(ロードしなきゃいけないときに?、)上からメニューが降ってきたりして邪魔臭いし、動きがきもい。

InstagramAPI(python-instagram)を使ってみる。

Instagramの API がいつのまにかリリースされていました。

–> Instagram developer

instagramの画像をだらだら眺めるものを作ってみたのときにはなかった気がするので最近ですかね?
(そういえば、最近iphoneアプリにinstagram系を見かけると思ってたけど、これがリリースされたからなのか)

というわけで、Instagram APIのpythonライブラリのpython-instagramを触ってみたいと思います。

続きを読む

instagramの画像をだらだら眺めるものを作ってみた

最近やっとiphoneを手に入れて、instagramなるおしゃれカメラアプリなんかを眺めたりしてるわけですが、このinstagramは画像の流れる速度がとっても早い上に、PCから一覧で見ることができません。
そこでだらだらっとinstagramの画像を眺めるページを作ってみました。

という、話はちょ〜後付なんですが、
python+GAEの勉強ということで作ってみました。
(instagramネタとしてはだいぶ遅れた話だとは思います、最近iphone買ったので許して・・・)


instagramの画像をだらだら眺める

眺めるというか、流れるって感じですが。
ほっとくとえらいことになってます。

動作としては、gaeのタスクでtwitterからinstagramのURL付きのついーとを拾って、そのURLから画像を取得して、サムネイル化してDBに入れて、あとは適当に表示、です。
ログを見てると「You have been rate limited. Enhance your calm」ってtwitterによく怒られてます。

■instagramをより楽しみたい方は他にも色々サービスがあるみたいなので以下をどうぞ。

iPhoneアプリ【Instagram】をより楽しむためのWebサービスまとめ – NAVER まとめ

——

twitterに怒られまくりで流れが止まりますなぁ・・・。

twitter bot

pythonとgaeの勉強ってことで、まずtwitter botを作ってみました。
といっても、cronで1時間おきに時間をぶつぶついってるだけです。

l3bot (l3bot) on Twitter

twitter全然やってないからどういうのをやればいいかよくわからないけど、ちょーローカルだけど最近面白いことをよく言う気がする嫁語録でもつぶやかせたいなぁ。まぁ、たいがい他人には面白くもないことだろうけどね。

ちなmに最近面白かったのは、「カラスに頭つつかれないように気をつけてね。カラスは光ってるモノ好きだから」です。