| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

Django

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

| Python | AngularJS x Django |

目次

Django

Tips

バージョンの確認

>>> import django
>>> django.VERSION

リクエストオブジェクトとレスポンスオブジェクト

Fileアップロード

静的ファイルを提供

モデル

[Django 多対多関係の実装 多対多関係の実装]

日付の比較

クエリ

JSON

Djangoのモデル

from django.core import serializers
#シリアライズ
users = User.objects.all()
print serializers.serialize("json", users)
#デシリアライズ
for item in serializers.deserialize("json", users_json):
  print str(item) 

Pythonオブジェクト

import json
#シリアライズ
l = [1,2,3]
print json.dumps(l)

#デシリアライズ
l = json.loads("[1,2,3]")

ロギング

Django ロギング設定

SQLのロギング

>>> import logging
>>> l = logging.getLogger('django.db.backends')
>>> l.setLevel(logging.DEBUG)
>>> l.addHandler(logging.StreamHandler())
>>> for b in Bookmark.objects.all():
...    print b.page.url
...    
http://google.co.jp
http://yahoo.co.jp
(0.000) SELECT "Bookmark_bookmark"."id", "Bookmark_bookmark"."page_id", "Bookmark_bookmark"."user_id" FROM "Bookmark_bookmark"; args=()
(0.000) SELECT "Bookmark_page"."id", "Bookmark_page"."url" FROM "Bookmark_page" WHERE "Bookmark_page"."id" = 1 ; args=(1,)
(0.004) SELECT "Bookmark_page"."id", "Bookmark_page"."url" FROM "Bookmark_page" WHERE "Bookmark_page"."id" = 2 ; args=(2,)

DjangoのテストでSQLをロギングする

  • セットアップでロガーを有効にする
from django.conf import settings
from django.test import TestCase
from django.test.client import Client

class SimpleTest(TestCase):
    @staticmethod
    def setUpClass():
        settings.DEBUG = True
        import logging
        l = logging.getLogger('django.db.backends')
        l.setLevel(logging.DEBUG)
        l.addHandler(logging.StreamHandler())

jQuery

jQueryから配列を送りDjangoで受け取る

jQuery UI のAutocompleteをDjangoで実装

開発サーバー

AngularJS

AngularJS DjangoのCSRFトークンを送信するようにconfigで設定する

認証

デプロイ

CentOS

AWS

デバッグ

デバッグモードを利用

views
from django.conf import settings
def ag_basic(request):
    t = loader.get_template('test.html')
    print settings.DEBUG
    c = RequestContext(request,
        {'DEBUG':settings.DEBUG}
        )
    return HttpResponse(t.render(c))
template
{% if DEBUG %}
DEBUG
{% else %}
RELEASE
{% endif %}

Django 1.7.1 のユニットテストをPyDevで実行するとAppRegistryNotReadyが発生する