macのbrewをupdateした
単語は全部英語というタイトル。もう英語で全部書けよ感がある。macのOSアップデートがあるたびにiTermも再起動して、vpsとvagrantとローカルと開くのが面倒なので、tmuxに頼ろうかと思ったら、まずバージョンを1.9にあげてくれとあった。
便利。tmuxサーバを終了させてもセッションを復元できる tmux-resurrect – 理系学生日記
それでbrew使おうとしたら動かない(; 😉
ググったらすぐ分かった。
これで環境を直してbrew update; brew upgradeした。tmuxは2.0になるらしい。
Share this:
Related posts
pythonその6 django入門
ルーティングがうまく行かないなーと思って、和訳を眺めてたら衝撃の事実が… 自分の間違い:mysite/polls/urls.py を新規作成 正しくは:mysite/mysite/urls.py 既存ファイルにルール追加。 と思いきや1.4と1.8だとurls.pyの置き場が違うみたい。重要そうなファイルなので、公式ドキュメントの間違いなんじゃないか?と思い試行錯誤した結果、ようやくでけた。polls/urls.pyは新規作成で、mysite/urls.pyは修正。両方必要みたい。公式もよーく読むとそう書いてあった。ルーティング定義をしてるのに404 not foundで、定義したルールとエラーしたルールが違う時点で気づける人は気づけるんだろう。 railsと比較すると自分で書いてる分、コントロールできている気がすると思うし、どうせできてるといってもscaffoldだと実際には使えないしなーと思う反面、いちいち書くの面倒くさいなーとも思ったり。また、がちゃがちゃやってる間にいろんなエラーに出会った。 ImportError : from x import yの誤り SyntaxError : 括弧の数が合わない IndentationError : インデントが合わない NoReverseMatch : “XXXX is not a registered namespace”と詳細で出てる。どうもチュートリアルにあるnamespaceの指定が余計っぽい。 AttributeError : module’ object has no attribute ‘XXXX’ タイプミスを指摘された。 この辺のデバッグは慣れが必要だな… チュートリアルの4ではそれまでとガラっとviewの書き方が変わる。今回はローカルのgitにこまめにコミットしながらやってたので、ビクビクせずに学習できたが、classベースのviewに変えたら、最新5件をとってきてindexに表示するところが動かなくなったので、後で調べる。たぶん。 2015/08/29追記 classベースのviewでindex表示ができない原因はtypoだった。contextと書くはずが、conextになっていた。
Share this:
pythonその7 正規表現
正規表現してみた。マッチオブジェクトを作成してmatch()するあたりが、rubyやperlと違ってjavaっぽい。しょうもないサンプルだけど、リンクしておく。 github それとは別に驚きの事実が。 Python 3 から、print は 命令文 ではなく、print( ) 関数に変わっているので注意 だそうです。SyntaxError: Missing parentheses in call to ‘print’ってでるけど、何のこっちゃ分からなくて困った。
Share this:
vagrantでdjangoでユーザ認証
ユーザ認証して、認証後のユーザ利用まで動作できたのでまとめる。 できたけど、フレームワークが提供してくれてるがいろいろ面倒くさい。 djangoって結構自前で作る部分が多いかと思うので、フレームワークがやってくれるのか、そこは自前なの?!、とかが分からなくてしんどかった。 Djangoのユーザ認証まとめ | c-bata web とはいえユーザ認証する部分は上記サイトをまるまる参考にさせていただきました。 せいぜいurls.pyの書き方が違うくらい。 ユーザ認証を別のアプリケーションから利用するところが今回の記事のメインなんだけど、モデルを起こすところも、c-bata webさんの記事を参考にさせてもらいました。しかし、差分だけ書くと作業の流れがわかりにくいので丸々書く。 アプリケーションをこさえる。todoを残すだけのアプリ。 $ python manage.py startapp todo setting.pyのINSTALLED_APPSにtodoを追加。 +++ b/django_auth/settings.py @@ -38,6 +38,7 @@ INSTALLED_APPS = ( ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘account’, + ‘todo’, ) urls.pyにルーティングを追加。 +++ b/django_auth/urls.py @@ -23,5 +23,6 @@ urlpatterns = [ url(r’^logout/$’, ‘django.contrib.auth.views.logout’, {‘template_name’: ‘account/logout.html’}), url(r’^account/’, include(‘account.urls’, namespace=’account’)), + url(r’^todo/’, include(‘todo.urls’)), ] モデルを定義。外部キーとしてdjangoのUserモデルを指定。 admin.py。 todo/urls.pyはフレームワーク生成ではなく、自分で作成。表示のみ。更新はadminからやる。 views.py。何をこんなにimportしなきゃいかんのか分かってないけど、やる。しょうがない。まだdjangoはチュートリアルと、これしか作ってないし。 テンプレートの追加。ディレクトリ構成が気持ち悪いけど、他の書き方がよく分からない。 % mkdir -p todo/templates/todo/ % touch todo/templates/todo/index.html あとはDBを更新すれば出来上がり。 % python manage.py makemigrations % python manage.py migrate 出来上がったのはこれ。ログイン後にhttp://127.0.0.1:8080/todoとかでアクセスすれば、adminで追加したメモがUser毎に表示されるハズ。 https://github.com/vottie/django_auth 苦労したのはtodoのviews.pyでどうやればUserを利用できるか、だった。 結果Userモデルをimportしてあげることで解決できた。 もう1点はListViewでどうやればログインしたUserがGETできるかだったが、ドキュメントをしらみつぶしに読んでいったらUserはRequestオブジェクトに入っていることが分かって、ListViewのselfはrequestオブジェクトを含むことが分かって解決した。 最後に今回の環境は以下。 vagrant ubuntu14.04 python 3.4.3(pyevn) django 1.8
Share this:
- Author: vottie
- Category: コンピュータ
- Tags: authentication, django, python
Trackbacks and Pingbacks on this post
No trackbacks.
- TrackBack URL
Comments on this post