牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Django

Django を Vagrant 環境でサーバ起動してるときに django-debug-toolbar のメニューが表示されない場合のメモ

(Django1.6) request.META['REMOTE_ADDR'] を何とかして表示する これが例えば 10.0.3.3 だったら settings にこれを追記する INTERNAL_IPS = ('127.0.0.1', '10.0.3.3') runserver 再起動 これで表示できた 参考サイト Installation — Django Debug Toolbar…

Django のバージョンをワンライナーで調べるメモ

$ python -c "import django;print(django.VERSION)" (1, 6, 5, 'final', 0)

Django で Rails の Foo.select(:title) みたいなフィールドの値だけ取りたい場合のメモ

(django1.6, rails4)なんか忘れるのでメモ Rails の場合 irb(main):002:0> Foo.select(:title) Foo Load (1.3ms) SELECT title FROM "foos" => #<ActiveRecord::Relation [#<Foo id: nil, title: "hoge">, #<Foo id: nil, title: "fuga">]> Django の場合 In [3]: Foo.objects.values_list('title', flat=True) Out[3]: ["hoge", "fuga"] Qu…</foo></activerecord::relation>

Django で非同期する Celery のメモ

Celery - Distributed Task Queue — Celery 3.1.16 documentation First Steps with Celery — Celery 3.1.16 documentation First steps with Django — Celery 3.1.16 documentation Celery 3.1 を Django で使う - Qiita

Django でランダムな文字列を生成するメモ

(django1.6.5) In [5]: from django.utils.crypto import get_random_string In [6]: get_random_string() Out[6]: u'JgkKgwrOcdZD' In [7]: get_random_string(20) Out[7]: u'7iLVOOyJKSoBNjgM3tNK' In [8]: get_random_string(22) Out[8]: u'vJV5VmxoedRFY…

Django で速攻 ユーザログインのサンプル作成するメモ

(django1.6, python2.7.3) views.py from django.contrib.auth.decorators import login_required @login_required def hoge_view(request): urls.py url(r'^accounts/login/$', 'django.contrib.auth.views.login'), templates djangoのソースからコピー dj…

さらっと AngularJS1.2.0 でクライアントサイド、Python3 と Django1.6 で api サーバ を試してみるメモ

(Python==3.3, Django==1.6, djangorestframework==2.3.8, angular1.2.0, generator-angular0.6.0-rc.1) Django で apiサーバ作成 virtualenv mkvirtualenv booklist_sample --python /opt/local/bin/python3.3 インストール $ pip install django $ pip ins…

Django + Bootstrap3 でゲストブックアプリを作ってみるメモ

(python==2.7.5, django==1.5.5, twitter_bootstrap==3.0.0) github にコードあげてみた https://github.com/CortYuming/django_guestbook_sample メモ クラスベース汎用ビューの ListView と CreateView を混ぜてささっと作ろうとしたが、うまくいかず。 結…

Django で簡単に戻るボタンのメモ

(django==1.5.4, python==2.7.3) <input type="button" value="Back" onClick="javascript:history.go(-1);"> もしくは <button onClick="javascript:history.go(-1);">Back</button> こんな感じかな参考サイト python - Django templates: create a "back" link? - Stack Overflow

django-registration でユーザ認証のメモ

(django==1.5.4, python==2.7)ユーザ登録するとメール来て、その本文にあるリンクに飛ぶとログインできるようになるやつ Rails の Devise 的な感じ https://bitbucket.org/ubernostrum/django-registration インストール pip install django-registration 設…

Django で開発時にメール送信の確認するメモ

(django==1.5, python==2.7) settings.py EMAIL_USE_TLS = False EMAIL_HOST = 'localhost' EMAIL_PORT = 1025 デバッグ用メールサーバ起動 $ python -m smtpd -n -c DebuggingServer localhost:1025 送信確認 shellからメール送信してみる $ python manage.…

Django で PDFを作成するメモ

(Django1.5, Python2.7) reportlab を利用する ReportLab - Content to PDF Solutions pip install reportlab Django で動作確認用サンプルアプリを作成 プロジェクト作成している前提で ./manage.py startapp reports reports/urls.py from django.conf.url…

Djangoでネストしたurls.pyとredirectのreverseでの名前付き URL パターンの呼び方のメモ

(Django1.5, Python2.7) apps/urls.py from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns( '', url(r'^admin/', include(admin.site.urls)), url(r'^contact/', include(…

Djangoのクラスベース汎用ビューでペジネータのメモ

追記2013-09-07: get_queryset(Django1.5, Python2.7)ページネイト, ページネイション, ページネータ, paginate, pagination, paginator のメモ 下準備 プロジェクト作成してDBとか設定 適当にアプリ作成 $ ./manage.py startapp cars cars app cars/models.…

Django で ImageField の upload_to に user.id を入れたい場合のメモ

(Django1.5, Pyhton2.7) models.py import os from django.db import models from django.contrib.auth.models import User def image_file_name(instance, filename): return os.path.join('images', str(instance.user.id), filename) class UserProfile(m…

Django で ImageField で画像を更新する時に変更前の画像を削除する場合のメモ

(Django1.5, Pyhton2.7)修正:2013-09-01 models.py def avatar_file_name(instance, filename): return os.path.join('avatar', str(instance.user.id), 'original', filename) class Profile(models.Model): user = models.OneToOneField(User) avatar = m…

Django で gunicorn の起動と停止のメモ

(Django1.5, python2.7) Gunicorn で Django を使う方法 — Django 1.4 documentation Gunicorn - Python WSGI HTTP Server for UNIX nginx 設定してる前提で インストール sudo pip install gunicorn 起動 manage.py ファイルがあるのと同じディレクトリで g…

Django のテンプレートで、タイトルをページ毎に変更したい場合のメモ

(Django1.5, python2.7) 親テンプレート base.html 例:サイト名「sample-site」をタイトルにいれる <title>{% block title %}sample-site{% endblock title %}</title> 子テンプレート child.html {% extends "base.html" %} {% block title %}child page | {{ block.super…

Django でフィクスチャのメモ

(python2.7, django1.5) モデルに初期データを投入する — Django 1.4 documentation settings.py 追加 FIXTURE_DIRS = ( os.path.join(ROOT, 'fixtures'), ) フィクスチャ作る fixtures/hoge.json ./manage.py shell とかでデータをいくつか作ってから、ダン…

Django でユーザごとに一覧表示させるのに汎用ビュー使う場合と使わない場合のメモ

(python2.7, django1.5) models.py from django.db import models from django.contrib.auth.models import User class Say(models.Model): message = models.CharField(max_length=255) date_created = models.DateTimeField(auto_now_add=True) user = mod…

Django のページネイトを使い回しできそうな感じにしてみるメモ

(python2.7, django1.5)pipにあるパッケージとか使わずに何とかしてみたい。 http://docs.djangoproject.jp/ja/latest/topics/pagination.html View paginate.py 新規作成する。 とりあえず settings.py とかあるディレクトリに置く apps/paginate.py #!/usr…

Django の QuerySet で sum で合計したい場合のメモ

追記:月末 (python2.7, django1.4) from django.db.models import Sum total_num = ModelName.objects.aggregate(Sum('somenum'))['somenum__sum'] python - Django SUM Query? - Stack Overflow python - django sum for a queryset - Stack Overflow

Emacs の jinja2-mode で Django のテンプレートを書くための設定メモ

※追記20130728: インデントの問題、複数行コメントの問題(Emacs24.3)web-mode でやろうとしたら タブ に色付けできなかったり、設定変えるの面倒そうだったので jinja2-mode を使ってみる事にした インストール M-x list-packages で jinja2-mode をインスト…

Django の html を Emacs の web-mode で書くためのメモ

(Emacs24.3, Django1.4, Python2.7) packages インストール web-mode.el - html template editing for emacs M-x list-packages でインストール web-mode yasnippet yasnippet yasnippet の snippets に web-mode ディレクトリを作ってファイル作成 html-mod…

Django で管理者を作成する時にうっかり間違えて変更したい場合のメモ

(Django1.4, Python2.7) $ ./manage.py shell > from django.contrib.auth.models import User > admin = User.objects.all()[0] > admin.username = 'foobar' > admin.save() Django: Access Admin User in Python Shell - Stack Overflow

MacPortsでインストールした zsh (oh-my-zsh) で django の補完をすると「awk: invalid -v option」とかなる場合のメモ

(zsh5.0.2, macosx10.8) 原因 「-v」 の後ろにスペースがないのが原因らしい 修正 /opt/local/share/zsh/5.0.2/functions/_django を修正する 修正前 awk -vdrop=1 '{ if (!drop) print substr($0, 3) } /^Available subcommands/ { drop=0 }') 修正後 awk -…

Django で "manage.py dbshell < foobar.sql" とかして DB のテーブルにカラムを追加する場合のメモ

修正: 2013-09-08テーブル "foo_bar" にカラム "words" を追加する foobar.sql BEGIN; ALTER TABLE `foo_bar` ADD `words` VARCHAR(255) NOT NULL DEFAULT ''; COMMIT; comand $ ./manage.py dbshell < foobar.sql 参考サイト Djangoのモデルにフィールドを…

Django の runserver 立ち上げたら "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" とかなる場合のメモ

(Python2.7, Django1.4) 問題 MySQL を 5.1 から5.5 にしたら、ローカルで runserver が起動しなくなった $ ./manage.py runserver : (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)") 解決 settings.py 127.0.0.1 in s…

django-debug-toolbar 設定メモ

(Djnago1.4, Python2.7) django-debug-toolbar] https://pypi.python.org/pypi/django-debug-toolbar settings.py MIDDLEWARE_CLASSES = ( # ... 'debug_toolbar.middleware.DebugToolbarMiddleware', # ... ) INTERNAL_IPS = ('127.0.0.1',) INSTALLED_APPS…

Django の manage.py shell で sql のクエリを見るメモ

HogeModel.objects.all().query.get_compiler('default').as_sql()