※こちらは旧サイトです(新サイトはこちら)
あんまりまとまってないけどとりあえず覚えた事をまとめてメモ
DjangoでViewに機能を追加するには、Pythonのデコレータを用いる方法が一般的
@login_required # デコレータ(例:ログイン処理)
def my_view(request):
# ...
もし、繊細な情報が含まれているページで Viewのデコレータを忘れてしまったらどうなるでしょう?幸いにも、Djangoでは、全てのリクエストをフックしてサイト全体に機能を追加できる「ミドルウェア」を書くことができます
Djangoではデータベースのバックアップとリストアがmanage.pyで行え、
$ python manage.py dumpdata app_name --format=json > app.json
でデータベースのバックアップが、
$ python manage.py loaddata app.json
でデータベースのリストアがそれぞれ実行できます。
+
で連結すると速度に影響したりメモリをたくさん使ってしまうので、リストに格納してから文字列に連結する
# -*- conding: utf-8 -*-
class Test():
def __init__(self):
# 文字列を格納するためのリストを作成
self.testList = []
def main(self):
self.testList.append("abc")
self.testList.append("def")
# 半角スペースでリストないの要素を連結する
self.testStr = " ".join(self.testList)
print self.testStr
if __name__ == '__main__':
test = Test()
test.main()
アプリケーションを設定するには、 AppConfig のサブクラスを作り、そのサブクラスへのドット区切りのパスを INSTALLED_APPS に追加
# Template: A.html
<html>
<head></head>
<body>
{% block hello %}
Hello
{% endblock %}
</body>
</html>
# Template B.html
{% extends "A.html" %}
{% block hello %}
World
{% endblock %}
# Rendered Template B
<html>
<head></head>
<body>
World
</body>
</html>
# Template C
{% extends "A.html" %}
{% block hello %}
{{ block.super }} World
{% endblock %}
# Rendered Template C
<html>
<head></head>
<body>
Hello World
</body>
</html>