ここではDjangoを使用する時によく使う(from・importする)、メソッド関数や使い方、サンプルコードなどを書いておきます。
from django.shortcuts import render
Djangoフレームワークのshortcutsモジュールからrender関数を使うためのコード
指定されたテンプレートを使って、動的にHTMLページを表示したりできます。
サンプルコード
from django.shortcuts import render
def my_view(request):
# テンプレートに渡すデータを作成
context = {
'foo': 'Hello',
'bar': 'World'
}
# テンプレートをレンダリングしてレスポンスを返す
return render(request, 'my_template.html', context)
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
params = {
'title': 'Sample page',
'msg': 'This is Sample page.'
}
return render(request, 'sample/index.html', params)
render関数の第1引数はHttpRequest、第2引数は表示するテンプレート、第3引数にはindex関数の変数(テンプレートhtmlに表示させる)を指定しています。下記は表示させるhtmlサンプルページです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>{{title}}</title>
</head>
<body>
<h1>{{title}}</h1>
<p>{{msg}}</p>
</body>
</html>
from django.http import HttpResponse
DjangoフレームワークのhttpモジュールからHttpResponseクラスを使うためのコード
テキスト、HTML、JSONなどのデータを、レスポンスの本文として返すことができます。
サンプルコード
from django.http import HttpResponse
def my_view(request):
# レスポンスの本文を作成
content = "Hello, World!"
# HttpResponseオブジェクトを作成して返す
return HttpResponse(content)
from django.contrib import admin
Djangoフレームワークのcontribモジュールからadminモジュールを使うためのコード
adminは、Djangoの管理サイト(Admin Site)を作成および管理することができます。
サンプルコード
from django.contrib import admin
from myapp.models import Book
admin.site.register(Book)
myappというアプリケーション内に定義されたBookモデルをadmin.site.registerを使って管理サイトに登録しています。
モデルは、データベーステーブルを表すためのDjangoのモデルクラスです。
登録したモデル(この場合はBookモデル)のデータを閲覧・編集することができるようになります。
Bookモデルサンプル
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
publication_date = models.DateField()
def __str__(self):
return self.title
Djangoのモデルを作成するためには、django.db.models.Modelクラスを継承する必要があります。
モデルクラス内でフィールドを定義し、それぞれのフィールドはデータベーステーブルのカラムとしてマッピングされます。
このフィールドの種類には、文字列、数値、日付、関連データなどがあります。
from django.urls import path
path関数は、DjangoのURLパターンを定義するために使用されます。
コードサンプル
from django.urls import path
import test.views as test
urlpatterns = [
path('url-pattern/', view_function, name='url-name'),
path('test/', test.index),
]
urlpatterns
に登録した情報を元に、どのアドレスにアクセスしたらどの処理が呼び出されるかが決まります。
'url-pattern/'
は、URLパターンの文字列部分であり、ユーザーがアクセスするURLの一部と一致する必要があります。
view_function
は、ユーザーがアクセスしたURLに対して実行されるビュー関数またはビュークラスです。
name='url-name'
は、URLパターンに名前を付けるためのオプションの引数です。この名前は、テンプレートやビュー関数内で逆引き(reverse)を行う際に使用されます。
import test.views as test
「test」フォルダ内のviews.pyをtestという名前でimportします。
path('test/', test.index)
‘test/’にアクセスをしたら、test内のindex関数を実行します。
from django.urls import path,include
アプリケーションフォルダtest/を作成し、urls.pyをもう一つ作成した場合は、そちらにもpathを設定していきます。
test/urls.pyのコード
from django.urls import path
from . import views
urlpatterns=[
path('', views.index, name='index'),
]
path('',views.index,name='index')
views.pyのindex関数を実行します。
プロジェクトurls.pyのコード
from django.contrib import admin
from django.urls import path,include
urlpatterns=[
path('admin/', admin.site.urls),
path('test/', include('test.urls')),
]
path('test/', include('test.urls')),
test/にアクセスしたらtest/urls.pyを実行します。