Pythonのdecoratorを使う。

ケースとしてログインしたユーザーにだけ、見せたい情報があって、それ以外の人が訪れた場合は、ログインしてくださいみたいなメッセージを表示する時にdecoratorは便利。

def login_required(func):
    def inner(*args,**kwargs):
        if request.method == "GET":
            if session.get("current_user") is None:
                flash(u"ログインしてください")
                return redirect("/")
            else:
                return func(*args,**kwargs)
            return func(*args,**kwargs)
    return inner

使い方

@app.route("/secret")
    @login_required
    def secret():
        pass

Pythonのdecoratorを使う。

ケースとしてログインしたユーザーにだけ、見せたい情報があって、それ以外の人が訪れた場合は、ログインしてくださいみたいなメッセージを表示する時にdecoratorは便利。

def login_required(func):
    def inner(*args,**kwargs):
        if request.method == "GET":
            if session.get("current_user") is None:
                flash(u"ログインしてください")
                return redirect("/")
            else:
                return func(*args,**kwargs)
            return func(*args,**kwargs)
    return inner

使い方

@app.route("/secret")
    @login_required
    def secret():
        pass

Homebrewを使ってMacにPostgresqlをセットアップする

今後Herokuを本格的に使っていくことにしたので、Postgresqlのセットアップをメモしておく。

Postgresqlをインストールする

brew install postgresql

初期化

initdb /usr/local/var/postgres -E utf8

データの保存先の設定

.bashrcまたは、.zshenvに書く

export PGDATA=/usr/local/var/postgres

Postgresqlの起動/終了

起動
pg_ctl -l /usr/local/var/postgres/server.log start

終了
pg_ctl -D /usr/local/var/postgres stop -s -m fast

自動起動の設定

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/postgresql/your_installed_version/homebrew.mxcl.postgresql.plist
~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

ユーザーの作成

psql -U username password

データベースの作成

createdb foo

データベース一覧を確認する

psql -l

art.furodriveを公開しました。

このたび、art.furodriveを公開しました。

作ったきっかけ

最近絵を描く練習をしているんだけど、そういった絵がスケッチブックの中にずっといて、公開されないのはもったいない。 せっかく頑張って書いているんだから、ちゃんとあとから見返すことができるような仕組みにしたい、と思ってこのサイトを作りました。

技術的な仕組み

サクッとFlask+SQLiteで作りました。ORMにはFlak-SQLAlchemyを使用しました。また、画像のホスティングはAmazon S3を使用しています。 運用方法としては、某ディレクトリに画像を突っ込んで、

fab upload

とするだけで本番環境にデプロイできます。 簡単に運用できて便利。

Macのtmux内で動かすVimで快適にコピペを行う。

tmux便利だったけど、vim内でコピペが出来なかったのが最大のストレスになって、 tmuxの中でvimを使うのを控えていたけど、今回の件で解決できたのでメモ。

1. システム標準のVimをmacvimに置き換える。

brew install macvim --override-system-vim

2. Paul Hinzeさんのすごいライブラリをインストールする。

brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste

3. .tmux.confに以下のコードを挿入する。

set-option -g default-command "reattach-to-user-namespace -l zsh"

4. .vimrcにてCtrl+Cキーでクリップボードにコピーできるようにする。

set clipboard=unnamedplus,autoselect
vmap <C-c> :w !pbcopy<CR>

今まで散々2,3,4はやってきた経験あるけどうまく行かなかった。 1を実践したら、すんなり動作したので標準のvimの挙動に何か問題が会った模様。

とにかく幸福が実現してよかった。Happy Coding!